我正在尝试从 ListView onItemLongCLick 激活 SingleChoiceItems 对话框,该对话框通过单选按钮有 3 个选项 1.查看个人资料 2.发送消息 3.删除好友,从我设置的方式来看,只有第一个选项 toast适用于所有 3 个选项。 我如何才能让选项 2 和 3 执行其操作而不是执行选项 1 的操作?
这是我的对话框的代码,
@Override
public Dialog onCreateDialog(int id) {
String[] items = { "View Profile", "Send Message", "Remove Friend" };
final DBAdapter db = new DBAdapter(this);
db.open();
switch (id) {
case 0:
return new AlertDialog.Builder(this)
.setIcon(R.drawable.icon)
.setTitle("Select a option")
.setSingleChoiceItems(items, id,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
int choice = 0;
// TODO Auto-generated method stub
mChoice = choice;
}
})
.setPositiveButton("OK", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int choice) {
// TODO Auto-generated method stub
if (mChoice == 0) {
Toast.makeText(getBaseContext(), "Test 1",
Toast.LENGTH_SHORT).show();
} else if (mChoice == 1) {
Toast.makeText(getBaseContext(), "Test2",
Toast.LENGTH_SHORT).show();
} else if (mChoice == 2) {
TextView friends = (TextView) findViewById(R.id.textview_friends);
String deletedfriend = friends.getText()
.toString();
db.DeleteFriends(deletedfriend);
Toast.makeText(getBaseContext(),
"Friend Removed", Toast.LENGTH_SHORT)
.show();
}
}
}
)
.setNegativeButton("Cancel", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int choice) {
}
})
.create();
}
return null;
}
最佳答案
删除选择= 0;
.setSingleChoiceItems(items, id,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
mChoice = which;
}
})
关于java - 对话框仅第一个选项有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16006641/