@Override
protected Dialog onCreateDialog (int id) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle(R.string.instant_alert_screen_title);
builder.setInverseBackgroundForced(true);
ListView aa = new ListView(this);
aa.setAdapter( new IconicAdapter());
aa.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
switch (arg2) {
case 0:
......
break;
case 1:
......
break;
case 2:
......
break;
builder.setView(aa);
builder.setPositiveButton("Done", new OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
builder.setNegativeButton("Cancel", new OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
return builder.create();
好的伙计......我有一个AlertDialog
..在Adapter
我设置为对话框3 CheckedTextView
...
如何在正面按钮监听器上找到第二个项目并检查它是否已检查?
不要建议我这样做:
CheckedTextView a = (CheckedTextView)findViewById(R.id.text)
boolean b = a.isChecked();
我需要使用onClick(DialogInterface dialog, int which)
这个对话界面......是真的吗?
答案 0 :(得分:0)
Doyou是否在对话框中找到第二项?将其添加到对话框时,保存对它的引用并在侦听器中使用该引用。 (如果它是局部变量,则需要声明它final
以在OnClickListener内部类中使用它。)此外,如果您将其更改为,那么您不希望我们推荐的代码可能会有效p>
CheckedTextView a = (CheckedTextView) dialog.findViewById(R.id.text);
答案 1 :(得分:0)
尝试使用它,如果您不需要额外的自定义,它可能会更好地为您提供服务:
class ClickListener implements DialogInterface.OnClickListener {
public void onClick(DialogInterface dialog, int itemSelectedPos) {
switch(itemSelectedPos) { ... }
}
}
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Title...");
builder.setSingleChoiceItems(new String[] { "Item1", "Item2" }, -1, new ClickListener());
如果需要,您也可以使用适配器替换字符串数组。