2017-01-20 6 views
1

私はAndroidアプリでリストを持つAlertDialogを構築しようとしています。リストを使って警告ダイアログを作成する

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(); 

を物事を明確にする:
これは私がダイアログを構築するために使用しているコードであるbranchesSet<String>です。 intented活動からのログで

、私が言ってメッセージを取得:

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

私はコマンドの上記の例外は、私はAlertDialogが空である理由だと思いれるString[]に変換Set<String>を使用して取得します。

私はそれを解決し、リストにSet<String>の項目が含まれているAlertDialogを表示できますか?

+1

あなたのセットは空です。 設定を初期化して項目を追加するコードを表示してください –

+0

ブランチのセットがアダプタに追加される前に空でないことを確認してください! –

+0

@VishalChhodwani、同じコードで別のセットと同じブロックで初期化し、もう1つがうまく動作するので、セットは空ではありません。 – 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

関連する問題