Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/189.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 setOnClickListener在Android中不工作_Java_Android_Android Fragments_Textview_Onclicklistener - Fatal编程技术网

Java setOnClickListener在Android中不工作

Java setOnClickListener在Android中不工作,java,android,android-fragments,textview,onclicklistener,Java,Android,Android Fragments,Textview,Onclicklistener,我试图在片段中的编辑文本视图上应用设置ClickListener,由于某种原因,它不起作用,当我单击编辑文本时,侦听器中的代码不会执行 片段xml: 片段代码: @覆盖 创建视图时的公共视图(@NonNull LayoutInflater充气机,@null可查看组容器, @可为空的捆绑包savedInstanceState){ 视图=充气机。充气(R.layout.add\u payment\u fragment,container,false); view.findViewById(R.i

我试图在
片段中的
编辑文本
视图
上应用
设置ClickListener
,由于某种原因,它不起作用,当我单击
编辑文本
时,侦听器中的代码不会执行

片段xml:


片段代码:

@覆盖
创建视图时的公共视图(@NonNull LayoutInflater充气机,@null可查看组容器,
@可为空的捆绑包savedInstanceState){
视图=充气机。充气(R.layout.add\u payment\u fragment,container,false);
view.findViewById(R.id.add_pay_time).setOnClickListener(newview.OnClickListener()){
@凌驾
公共void onClick(视图v){
Toast.makeText(getContext(),“aaaa”,Toast.LENGTH_LONG.show();
}
});
返回视图;
}

编辑文本需要
焦点
调用
onClick()

解决方案1

设置侦听器时请求焦点:

EditText editText = view.findViewById(R.id.add_pay_time);
editText.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Toast.makeText(getContext(), "aaaa", Toast.LENGTH_LONG).show();
    }
});
editText.requestFocus(); //request focus
EditText editText = view.findViewById(R.id.add_pay_time);
editText.setOnTouchListener(new View.OnTouchListener() {
    @Override
    public boolean onTouch(View v, MotionEvent event) {
        if (MotionEvent.ACTION_DOWN == event.getAction())
            Toast.makeText(getContext(), "aaaa", Toast.LENGTH_LONG).show();
        return false;
    }
});

解决方案2

触摸式监听设置:

EditText editText = view.findViewById(R.id.add_pay_time);
editText.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Toast.makeText(getContext(), "aaaa", Toast.LENGTH_LONG).show();
    }
});
editText.requestFocus(); //request focus
EditText editText = view.findViewById(R.id.add_pay_time);
editText.setOnTouchListener(new View.OnTouchListener() {
    @Override
    public boolean onTouch(View v, MotionEvent event) {
        if (MotionEvent.ACTION_DOWN == event.getAction())
            Toast.makeText(getContext(), "aaaa", Toast.LENGTH_LONG).show();
        return false;
    }
});

解决方案3

您可以同时使用
onClickListener
onFocusChangeListener

EditText editText = view.findViewById(R.id.add_pay_time);
editText.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        showToast();//call your method
    }
});

editText.setOnFocusChangeListener(new View.OnFocusChangeListener() {
    @Override
    public void onFocusChange(View v, boolean hasFocus) {
        if (hasFocus)
            showToast();//call your method
    }
});

编辑文本需要
focus
调用
onClick()

解决方案1

设置侦听器时请求焦点:

EditText editText = view.findViewById(R.id.add_pay_time);
editText.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Toast.makeText(getContext(), "aaaa", Toast.LENGTH_LONG).show();
    }
});
editText.requestFocus(); //request focus
EditText editText = view.findViewById(R.id.add_pay_time);
editText.setOnTouchListener(new View.OnTouchListener() {
    @Override
    public boolean onTouch(View v, MotionEvent event) {
        if (MotionEvent.ACTION_DOWN == event.getAction())
            Toast.makeText(getContext(), "aaaa", Toast.LENGTH_LONG).show();
        return false;
    }
});

解决方案2

触摸式监听设置:

EditText editText = view.findViewById(R.id.add_pay_time);
editText.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Toast.makeText(getContext(), "aaaa", Toast.LENGTH_LONG).show();
    }
});
editText.requestFocus(); //request focus
EditText editText = view.findViewById(R.id.add_pay_time);
editText.setOnTouchListener(new View.OnTouchListener() {
    @Override
    public boolean onTouch(View v, MotionEvent event) {
        if (MotionEvent.ACTION_DOWN == event.getAction())
            Toast.makeText(getContext(), "aaaa", Toast.LENGTH_LONG).show();
        return false;
    }
});

解决方案3

您可以同时使用
onClickListener
onFocusChangeListener

EditText editText = view.findViewById(R.id.add_pay_time);
editText.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        showToast();//call your method
    }
});

editText.setOnFocusChangeListener(new View.OnFocusChangeListener() {
    @Override
    public void onFocusChange(View v, boolean hasFocus) {
        if (hasFocus)
            showToast();//call your method
    }
});

用getActivity().getApplicationContext()代替

用getActivity().getApplicationContext()代替

我刚试过,恐怕不行。还有其他想法吗?谢谢你花时间看这个。我两个都试过了,它们都有效。试着重写这个片段的全部代码。我刚试过,恐怕不行。还有其他想法吗?谢谢你花时间看这个。我两个都试过了,它们都有效。尝试重写此片段的全部代码。