Edittext单击事件焦点

时间:2012-04-20 13:48:41

标签: android

我有三个Edittext字段ed1,ed2,ed3。当用户点击ed2 / ed3时,我打开了对话框,并从该对话框中获取输入。对于第一次单击光标进入edittext框,只有下一次单击,我可以打开对话框获取输入。我需要显示第一次点击的对话框。

4 个答案:

答案 0 :(得分:17)

将EditText设置为unFocusable。这样第一次触摸即可点击。

在您所使用的EditText的XML中添加:

 android:focusableInTouchMode="false"

答案 1 :(得分:2)

为什么不使用Button而是..但将其背景设置为默认的EditText ..

答案 2 :(得分:1)

这就是EditText的行为方式。他们必须首先关注以触发onClick事件。

编辑: 就像Barak指出的那样,您可以禁用“可聚焦性”,只需单击一下即可打开它。缺点是你将无法输入EditText(这可能适用于你的用例)。

答案 3 :(得分:0)

要保持EditText典型值,你可以做一点技巧。

如果只需要在第一时间打开Dialog,然后通常使用EditText就可以执行此操作:

public class EditTextActivity extends Activity {
    EditText et1;
    int clickCount = 0;

    @Override
    public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.main);

         et1 = (EditText) findViewById(R.id.main_et1);
         et1.setFocusableInTouchMode(false);
         setOnClickListeners();


    private void setOnClickListeners(){
         location.setOnClickListener(new View.OnClickListener() {
         @Override
         public void onClick(View v) {
            if (clickCount == 0){
                OpenDialog(); //Call the function to open the dialog created by you
                et1.setFocusableInTouchMode(true);
            }
            clickCount = 1;
        }
    });

}