android - java中的switch case语句中,case所对应的数目是不确定的,能否动态改变case 的个数?
PHP中文网
PHP中文网 2017-04-18 09:37:56
0
2
463

现在方法中传入的menuList的数目是不确定的,每个menuList.get(i),都对应一个runnableList.get(i)。现在需要根据menuList.size()动态改变case的数目,求思路

public boolean Confim(final Activity act, String title, final String[] menuList, final List<Runnable> runList) {
        runnableList = runList;
        AlertDialog.Builder builder = new AlertDialog.Builder(act);
        builder.setTitle(title);
        builder.setItems(menuList, new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int which) {

                switch (which) {
                    case 0:
                        if (runnableList.get(0) == null) return;
                        runnableList.get(0).run();
                        break;
                    case 1:
                        if (runnableList.get(1) == null) return;
                        runnableList.get(1).run();
                        break;
                    case 2:
                        if (runnableList.get(2) == null) return;
                        runnableList.get(2).run();
                        break;
                }
            }
        });
    
        builder.show();

        return false;
    }
PHP中文网
PHP中文网

认证高级PHP讲师

répondre à tous(2)
黄舟

switch case est spécifié au moment de la compilation et ne peut pas être modifié dynamiquement.
De plus, votre besoin ne peut-il pas être réalisé de cette manière ?

...
if (runnableList.get(which) == null) return;
runnableList.get(which).run();
...
刘奇

Vous pouvez simplement passer which comme paramètre dans ce code. Pourquoi utiliser switch

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!