16

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

我遇到的问题是 textView 仅在我双击 EditText 框时才会更改,单击一次并且 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);                
        }
    });
4

5 回答 5

28

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

于 2012-11-21T15:10:36.140 回答
9

尝试设置OnTouchListener而不是OnClickListener

于 2012-11-21T15:10:47.880 回答
4

使用它,它会首先触发。

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; 
        } 

});
于 2017-11-02T08:33:06.810 回答
2

设置你edittextxml

<EditText
  android:focusable="false"
  ...
/>
于 2017-11-25T02:33:04.597 回答
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。

于 2021-02-16T10:11:04.220 回答