现在方法中传入的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;
}
switch case
ditentukan pada masa penyusunan dan tidak boleh ditukar secara dinamik.Selain itu, tidakkah keperluan anda dapat direalisasikan dengan cara ini?
Anda hanya boleh lulus yang sebagai parameter dalam kod ini Mengapa menggunakan suis