[英]How can I display values of arraylist in toast?
我在alertdialog中显示复选框。 当用户单击“确定”时,应该显示烤面包,就像您选择了PHP,Java,JSON一样。 现在,它的显示ID。 我如何获得价值?
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 ";
}
这部分代码
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)只是将ID添加到您的arraylist中。 您不希望添加ID。 由于要添加精确的值,因此可以简单地使用itemsSelected.add(items [selectedItemId])之类的东西,因为items数组包含需要显示的值。 将正确的值放入arraylist后,可以使用itemsSelected.toString()之类的方法显示吐司。 您还需要处理所有其他检查。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.