3

我有三个 Edittext 字段 ed1、ed2、ed3。当用户单击 ed2 / ed3 时,我打开了对话框并从该对话框中获取输入。对于第一次单击光标来到编辑文本框,并且仅在下一次单击时,我可以打开对话框以获取输入。我需要显示第一次单击的对话框。

4

4 回答 4

20

将 EditText 设置为 unFocusable。这样,第一次触摸注册为点击。

在有问题的 EditText(s) 的 XML 中添加:

 android:focusableInTouchMode="false"
于 2012-04-20T14:32:02.843 回答
2

为什么不使用 Button 来代替.. 而是将其背景设置为默认 EditText..

于 2012-04-20T13:52:40.780 回答
1

这就是 EditText 的行为方式。他们必须首先集中注意力才能触发onClick事件。

编辑:就像巴拉克指出的那样,您可以禁用“可聚焦性”,并且可以一键打开它。缺点是您将无法在 EditText 上键入(这可能适合您的用例)。

于 2012-04-20T13:51:37.287 回答
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;
        }
    });

}
于 2012-07-27T22:20:34.027 回答