Android AlertDialog如何识别启动对话框的项目

时间:2014-01-19 11:56:19

标签: android alertdialog

我想在应用程序设置的第二个活动上有一个菜单,所以我使用了ListView。现在我想根据点击的项目将一些信息放到表格中,即如果点击了电话项目,我想打开一些对话框输入电话号码,但是如果点击了电子邮件项目,我想打开一个对话但是有不同的数据,所以我必须知道单击了哪个项目。以下是它现在的样子:

mainListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position,
                                long id) {
            String item = ((TextView)view).getText().toString();
            showInputDialog();
        }
    });

public void showInputDialog() {
    AlertDialog.Builder alert = new AlertDialog.Builder(this);
    alert.setTitle("Phone number");
    alert.getContext().
    // Set an EditText view to get user input
    final EditText input = new EditText(this);
    input.setInputType(InputType.TYPE_CLASS_NUMBER);
    alert.setView(input);


    alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int whichButton) {
            dataEntry = input.getText().toString();
            settingsList.put("phone",dataEntry);
            fileManage.writeFile(file, settingsList);
            fileManage.readFile(file);
        }
    });

    alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int whichButton) {
            // Canceled.
        }
    });

    alert.show();
}

1 个答案:

答案 0 :(得分:0)

为什么不将点击的项目传递给showInputDialog()方法。

public void showInputDialog(String item){}

在onItemClick方法中:

@Override
    public void onItemClick(AdapterView<?> parent, View view, int position,
                            long id) {
        String item = ((TextView)view).getText().toString();
        showInputDialog(item);
    }

这样您就可以通过点击对话框中的哪个项目进行识别。