我之前已經發送了數據進/出對話框,但這讓我難以理解問題所在。Android在onClick AlertDialog中失去了參考
當onClick方法被調用時,mylocalDataRef的值會丟失。這個想法是隻顯示一個級別的名稱,因爲AlertDialog的輸入只是String []。當用戶點擊某個級別時,我使用mylocalDataRef.get(item)來檢索完整對象並將其發送給活動。當調試時,mylocalDataRef不爲空,即它在調用get()方法時不會崩潰,但是我看不到它的值(就像它是null),並且get()的返回結果始終空值。
任何人都可以闡明發生了什麼。
p.s.在onOptionsItemSelected()中調用showLevels()時,即在用戶單擊操作欄上的菜單按鈕時調用showLevels()。
private void showLevels()
{
final ArrayList<Level> mylocalDataRef = levels;
String[] simpleLevels = new String[mylocalDataRef.size()];
for(int i = 0; i < mylocalDataRef.size(); i++)
{
simpleLevels[i] = mylocalDataRef.get(i).getName();
}
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Pick a level");
builder.setItems(mylocalDataRef, new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int item)
{
Intent i = new Intent(getBaseContext(), LevelActivity.class);
i.setAction(Intent.ACTION_VIEW);
i.putExtra("result", mylocalDataRef .get(item).getId());
i.putExtra("levelname", mylocalDataRef .get(item).getName());
i.putExtra("type", "level");
startActivity(i);
}
});
AlertDialog alert = builder.create();
alert.show();
}