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 ";
}
ID는 MuliChoiceDilaog를 채우는 데 사용한 배열의 위치입니다! (그 항목 [ID]는 여기). –
자세한 내용을 설명하십시오. 나는 그것을 얻을 수 없었다. –
itemsSelected의 내용을 보면 선택한 항목 []의 색인입니다. – emhomm4