2011-02-15 74 views
-2

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

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

+0

请提供您的代码。这将有助于找出错误。 – Praveen 2011-02-15 12:38:02

+0

Yeah Ofcourse Reno – Shah 2011-02-15 12:59:31

+2

@Reno请不要伤害别人 – ingsaurabh 2011-02-15 13:03:30

回答

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

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

2

如果我正确地读你的困境,你会设置一个OnFocusChangeListener为的EditText 。像下面的剪辑一样。

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,并使用单击处理程序来弹出对话框。这将为用户创建更“期望”的交互。