2017-01-20 16 views
1

Я пытаюсь создать AlertDialog со списком в своем приложении для Android.
Это код, я использую для построения диалога:Диалог создания оповещений со списком

AlertDialog.Builder builder = new AlertDialog.Builder(HomeActivity.this); 
builder.setTitle("Pick a branch to navigate to:"); 
ArrayAdapter<String> adapter = new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_list_item_1); 
adapter.addAll(branches); 
builder.setAdapter(adapter, new DialogInterface.OnClickListener() { 
    @Override 
    public void onClick(DialogInterface dialog, int which) { 
     Intent locationIntent = new Intent(getApplicationContext(), NavigationActivity.class); 
     locationIntent.putExtra("branch", which); 
     startActivity(locationIntent); 
    } 
}); 
builder.show(); 

Просто, чтобы сделать вещи ясно: branches является Set<String>.

В журнале от intented деятельности, я получаю сообщение о том:

java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0 

я получаю исключение выше для команды использует переделанный Set<String> в String[], который я думаю, почему AlertDialog пуст ,

Как это разрешить и показать AlertDialog со списком предметов из Set<String>?

+1

Ваш комплект пуст. Можете ли вы показать код инициализации и добавления элементов в Set –

+0

Убедитесь, что набор ветвей не пуст, прежде чем добавлять его в адаптер! –

+0

@ VishalChhodwani, набор не пуст, так как я инициализирую его в том же блоке, что и другой набор с тем же кодом, а другой отлично работает. – Ido

ответ

0
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this); 
alertDialogBuilder.setTitle("Schedule Post"); 
String[] items={"Item 1","Item 2","Item 3"}; 
alertDialogBuilder.setItems(items, new DialogInterface.OnClickListener() { 
     @Override 
     public void onClick(DialogInterface dialogInterface, int i) { 

     } 
    }); 
AlertDialog alertDialog = alertDialogBuilder.create(); 
alertDialog.show(); 
+1

Пожалуйста, объясните свой ответ, почему OP должен попробовать ваш ответ и что на самом деле неправильно в вопросе/коде, который OP опубликовал. – Shashanth