Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 需要双击编辑文本,单击侦听器才能响应_Java_Android_Android Edittext_Onclicklistener_Settext - Fatal编程技术网

Java 需要双击编辑文本,单击侦听器才能响应

Java 需要双击编辑文本,单击侦听器才能响应,java,android,android-edittext,onclicklistener,settext,Java,Android,Android Edittext,Onclicklistener,Settext,我有一段代码,当用户选择编辑文本框时,我想更改文本视图中显示的文本 我遇到的问题是,当我双击编辑文本框时,文本视图只会更改,单击一次,文本视图就没有更改 我是否应该使用另一个单击侦听器 final EditText box0105 = (EditText)findViewById(R.id.box0105); final TextView txtHint = (TextView)findViewById(R.id.txtHint); box0105.setOnClickListe

我有一段代码,当用户选择编辑文本框时,我想更改文本视图中显示的文本

我遇到的问题是,当我双击编辑文本框时,文本视图只会更改,单击一次,文本视图就没有更改

我是否应该使用另一个单击侦听器

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

在EditText xml中添加android:focusableInTouchMode=“false”,然后EditText将接受单次单击尝试在TouchListener上设置
而不是
单击Listener
使用此选项,它将首先触发

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

});

xml

<EditText
  android:focusable="false"
  ...
/>

我设置了两个侦听器,一个是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,然后调用future times OnClick。

focusableInTouchMode=“false”实现了结果,但它也消除了用户使用Edittext的能力(我想是吧?)使用onTouchListener可以接受单击,但也可以维护editText@Kurt:不,它不会删除用户使用Edittext的功能,它只是避免第一次触碰事件。我永远不会理解这个答案是如何获得20票的。