java - 对话框仅第一个选项有效

标签 java android dialog

我正在尝试从 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/

相关文章:

java - 使用 hibernate/jdbc 以值/对象列表作为参数从 java 代码调用存储过程

Java 序列化 : readObject() vs. readResolve()

android - Phone Gap Facebook 插件无法通过 native Facebook 应用程序正常工作,getLoginStatus() 在 Android 上提供未知状态

Android SDK 平台目标(对于 sbt gen-android <platform-target> <package-name> <name>)

javascript - 用于输入 val 的 jQuery 对话框脚本

java - 更新进度对话框

java - 日历日期不同

java - 检查空值样式的变量

android - Gradle buildType/productFlavor 使用意外的 buildConfigField

Android VideoView : Video view is much darker in a dialog view