2016-07-31 57 views
2

我正在使用顯示應用程序開始處的菜單的警告對話框,我希望對話框向我顯示2個值,它們是來自對象的「名稱」,以下是警報的代碼對話:在AlertDialog中顯示列表

public void showDialog() { 

    EntityType en = new EntityType(); 
    ArrayList array = ApplicationController.entities; 

    final AlertDialog.Builder builder = new AlertDialog.Builder(this); 
    builder.setTitle("Pick one"); 
    builder.setItems(array, new DialogInterface.OnClickListener() { 
     @Override 
     public void onClick(DialogInterface dialog, int which) { 
      // I want to write my code here 
     } 
    }); 

    builder.show(); 
} 

EntityType是我的對象,它包含一個字符串「名」和ApplicationController.entities包含數組

回答

1
public void showDialog() { 

    EntityType en = new EntityType(); 
    ArrayList array = ApplicationController.entities; 

    final AlertDialog.Builder builder = new AlertDialog.Builder(this); 
    builder.setTitle("Pick one"); 
    ArrayList<String> displayValues=new ArrayList<>(); 
     for (Entity entity : array) { 
     displayValues.add(entity.name); 
     } 

     ArrayAdapter<String> adapter = new ArrayAdapter<String>(getApplicationContext(),android.R.layout.simple_list_item_1,array); 
     final AlertDialog.Builder builder = new AlertDialog.Builder(this); 
     builder.setTitle("Pick one"); 
     builder.setSingleChoiceItems(displayValues, 0, new DialogInterface.OnClickListener() { 
     @Override 
     public void onClick(DialogInterface dialog, int which) { 
      Entity selectedItem = array[which]; 
     } 
     });  


    builder.show(); 
} 
0

你必須創建一個ArrayAdapter牽着你的EntityType名稱,並將其添加到它:

ArrayAdapter<String> adapt = new ArrayAdapter<String>(this, android.R.layout.select_dialog_singlechoice); 
adapt.add("your entity name"); 

然後在對話框:

builder.setAdapter(adapt, new DialogInterface.OnClickListener() { 
     public void onClick(DialogInterface dialog, int item) { 
      //Your code here 
     } 
    }); 

希望它可以幫助

1
ArrayAdapter<String> adapt = new ArrayAdapter<String>(this, android.R.layout.select_dialog); 
adapt.add("your entity name"); 

然後編輯diaolog代碼:

builder.setAdapter(adapt, new DialogInterface.OnClickListener() { 
     public void onClick(DialogInterface dialog, int item) { 
      //write code here 
     } 
    }); 
3

嘗試下面的代碼..它爲我工作。 .. :)

AlertDialog.Builder builderSingle = new AlertDialog.Builder(MainActivity.this); 
    builderSingle.setIcon(R.drawable.green_tick_add); 
    builderSingle.setTitle("Choose.."); 

    final ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(MainActivity.this, android.R.layout.select_dialog_item); 
    arrayAdapter.add("Change Photo"); 
    arrayAdapter.add("Remove Photo"); 

    builderSingle.setNegativeButton("cancel", new DialogInterface.OnClickListener() { 
     @Override 
     public void onClick(DialogInterface dialog, int which) { 
      dialog.dismiss(); 
     } 
    }); 

    builderSingle.setAdapter(arrayAdapter, new DialogInterface.OnClickListener() { 
     @Override 
     public void onClick(DialogInterface dialog, int which) { 
      String strName = arrayAdapter.getItem(which); 

     } 
    }); 
    builderSingle.show();