2016-12-05 8 views
0

alertdialog에 체크 박스를 표시하고 있습니다. 사용자가 확인을 클릭하면 PHP, Java, JSON을 선택한 것처럼 토스트가 표시됩니다. 지금은 ID를 표시하고 있습니다. 가치를 얻으려면 어떻게해야합니까?토스트에 arraylist 값을 표시하려면 어떻게해야합니까?

Dialog dialog; 
    final String[] items = {" Objective C", " JAVA", " JSON", " C#", "PHP"}; 
    final ArrayList itemsSelected = new ArrayList(); 
    AlertDialog.Builder builder = new AlertDialog.Builder(this); 
    builder.setTitle("Select Languages you know : "); 
    builder.setMultiChoiceItems(items, null, 
      new DialogInterface.OnMultiChoiceClickListener() { 
       @Override 
       public void onClick(DialogInterface dialog, int selectedItemId, 
            boolean isSelected) { 
        if (isSelected) { 
         itemsSelected.add(selectedItemId); 
        } else if (itemsSelected.contains(selectedItemId)) { 
         itemsSelected.remove(Integer.valueOf(selectedItemId)); 
        } 
       } 
      }) 
      .setPositiveButton("Done!", new DialogInterface.OnClickListener() { 
       @Override 
       public void onClick(DialogInterface dialog, int id) { 
        //Your logic when OK button is clicked 
        Toast.makeText(MainActivity.this,"You've selected "+itemsSelected,Toast.LENGTH_SHORT).show(); 
       } 
      }) 
      .setNegativeButton("Cancel", new DialogInterface.OnClickListener() { 
       @Override 
       public void onClick(DialogInterface dialog, int id) { 
       } 
      }); 
    dialog = builder.create(); 
    dialog.show(); 

[업데이트] 솔루션을 찾았지만 이상적이지 않습니다. 지금은 다음 코드를 추가하여 작업하고 있습니다.

String one=""; 
        String two=""; 
        String three=""; 
        String four=""; 

        String zero=""; 
        if (s.contains("0")) 
        { 
         zero="Obj C "; 
        } 
        if (s.contains("1")) 
        { 
         one="JAVA "; 
        } if (s.contains("2")) 
        { 
         two="JSON "; 
        } if (s.contains("3")) 
        { 
         three="C# "; 
        } if (s.contains("4")) 
        { 
         four="PHP "; 
        } 
+0

ID는 MuliChoiceDilaog를 채우는 데 사용한 배열의 위치입니다! (그 항목 [ID]는 여기). –

+0

자세한 내용을 설명하십시오. 나는 그것을 얻을 수 없었다. –

+0

itemsSelected의 내용을 보면 선택한 항목 []의 색인입니다. – emhomm4

답변

0

코드

new DialogInterface.OnMultiChoiceClickListener() { 
       @Override 
       public void onClick(DialogInterface dialog, int selectedItemId, 
            boolean isSelected) { 
        if (isSelected) { 
         **itemsSelected.add(selectedItemId);** 
        } else if (itemsSelected.contains(selectedItemId)) { 

itemsSelected.add (selectedItemId)의이 부분은 단순히 당신의 ArrayList에 ID를 추가합니다. 이드가 추가되는 것을 원하지 않습니다. 정확한 값이 필요하기 때문에 Items 배열에 표시해야하는 값이 포함되어 있으므로 itemsSelected.add (items [selectedItemId])와 같은 것을 사용할 수 있습니다. arraylist에 올바른 값을 넣었을 때 itemsSelected.toString() 또는 뭔가를 사용하여 축배를 표시 할 수 있습니다. 다른 모든 수표도 처리해야합니다.