2017-01-20 18 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>입니다
이 내가 대화를 구축하기 위해 사용하고 코드입니다.

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

나는에 AlertDialog가 비어있는 이유는 내가 생각하는 명령이이 String[]Set<String> 변환 사용을 위해 위의 예외를 얻을하십시오들이 의도 활동의 로그에

, 내가 말하는 메시지가 .

어떻게 해결할 수 있으며 목록에 Set<String>의 항목이 포함 된 AlertDialog를 표시 할 수 있습니까?

+1

귀하의 세트가 비어 있습니다. 초기화 코드 설정 및 항목 추가에 코드를 표시하십시오. –

+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