需要双击EditText以使点击侦听器响应

时间:2012-11-21 15:07:21

标签: java android android-edittext onclicklistener settext

我有一段代码,我想在用户选择EditText框时更改textView中显示的文字。

我遇到的问题是,当我双击EditText框时,textView只会改变,只需单击一下,textView就没有变化。

我应该使用另一个点击监听器吗?

final EditText box0105 = (EditText)findViewById(R.id.box0105);
final TextView txtHint = (TextView)findViewById(R.id.txtHint);
        box0105.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            txtHint.setText(onOneClick);                
        }
    });

5 个答案:

答案 0 :(得分:21)

在EditText xml中添加android:focusableInTouchMode="false",然后EditText将接受单击

答案 1 :(得分:7)

尝试设置OnTouchListener而不是OnClickListener

答案 2 :(得分:2)

edittext

中设置xml
<EditText
  android:focusable="false"
  ...
/>

答案 3 :(得分:1)

使用它,它会先发射。

editText.setOnTouchListener(new OnTouchListener() { 
        @Override 
        public boolean onTouch(View v, MotionEvent event) {
            if(MotionEvent.ACTION_UP == event.getAction())
                // Do whatever you want to do man, but don't trouble your mother
            return false; 
        } 

});

答案 4 :(得分:1)

我设置了 2 个侦听器,一个是 OnClick,另一个是 OnFocusChange。像这样:

editText.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        System.out.println("Edittext has been clicked");
    }
});

editText.setOnFocusChangeListener(new View.OnFocusChangeListener() {
    @Override
    public void onFocusChange(View v, boolean hasFocus) {
        System.out.println("Edittext has been clicked");
    }
});

第一次点击 Edittext 时调用 OnFocus,然后调用 OnClick 以后的时间。