2016-07-31 2 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(); 
Смежные вопросы