android中的editText

时间:2011-02-15 12:30:42

标签: android

我正在制作一个应用程序,我在我的布局中添加了一个EditText。

我想要实现的是,当选择EditText时,应打开一个对话框,其中包含一些常规文本和OK按钮。我可以使用哪种方法来实现这一目标?

3 个答案:

答案 0 :(得分:4)

你必须尝试这样的事情

searchtext.setOnKeyListener(new OnKeyListener()
    {
        public boolean onKey(View v, int keyCode, KeyEvent event)
        {
            if (event.getAction() == KeyEvent.ACTION_DOWN)
            {
                     showDialog();
            }
        }
     };

这里是showDialog()代码

private void showDialog()
{
    final AlertDialog.Builder Main_Dialog = new AlertDialog.Builder(this);
    final EditText input = new EditText(this);
    input.setPadding(10, 10, 10, 10);
    input.setText(ipAddress);

    Main_Dialog.setView(input);
    Main_Dialog.setTitle("Enter IP Address:");
    Main_Dialog.setPositiveButton("Ok", new DialogInterface.OnClickListener()
    {
        public void onClick(DialogInterface dialog, int whichButton)
        {
                        //Do whatever
        }
    });
    Main_Dialog.show();
}

答案 1 :(得分:2)

如果我正确地阅读您的困境,您需要为EditText设置OnFocusChangeListener。类似于以下内容。

    EditText e = new EditText(this);
    e.setOnFocusChangeListener
    (
        new OnFocusChangeListener() {
            @Override
            public void onFocusChange(View v, boolean hasFocus) {
                if (v.hasFocus()) {
                    showDialog(COOL_DIALOG);
                }
            }
        }
    );

注意,这似乎是一个有点奇怪的用户交互。为什么不让他们使用EditText来制作它?如果你真的想这样做,我建议使用常规TextView或Button,并使用点击处理程序弹出对话框。这将为用户创建更“预期”的交互。

答案 2 :(得分:1)

您的意思是想要在EditView获得焦点时显示对话框?我认为重写View.onFocusChanged()将是最佳选择。如果要跟踪EditText的详细输入,请实现TextWatcher并使用TextView.addTextChangedListener()将其添加到EditText实例。