Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/188.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_Button - Fatal编程技术网

Java 为什么按钮需要点击两次才能工作

Java 为什么按钮需要点击两次才能工作,java,android,button,Java,Android,Button,我已经创建了这个应用程序,我有一个按钮,在应用程序中的一切都是好的,除了一个事实,如果我想让按钮工作,我必须按下它两次,而不是一次像假设。 下面是一段代码: //CODE: public void INCASEOFCLICK(View view) { Button B = (Button) findViewById(R.id.B); B.setOnClickListener(new View.OnClickListener() { @Override

我已经创建了这个应用程序,我有一个按钮,在应用程序中的一切都是好的,除了一个事实,如果我想让按钮工作,我必须按下它两次,而不是一次像假设。 下面是一段代码:

//CODE:
public void INCASEOFCLICK(View view) {
    Button B = (Button) findViewById(R.id.B);
    B.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            EditText A = (EditText) findViewById(R.id.A);
            TextView C = (TextView) findViewById(R.id.C);
            String AA=A.getText().toString();
            if(A.length()>0){
                C.setText(AA);
            }else{
                Toast.makeText(getApplicationContext(), "TRY AGAIN", Toast.LENGTH_LONG).show();
            }
        }
    });

}

您所做的是在第一次单击时设置clicklistener,在第二次单击时获得响应。通常,如果您在
onCreate()
中编写下面提到的代码,您的按钮将按预期工作

Button B = (Button) findViewById(R.id.B);
B.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            EditText A = (EditText) findViewById(R.id.A);
            TextView C = (TextView) findViewById(R.id.C);
            String AA=A.getText().toString();
            if(A.length()>0){
                C.setText(AA);
            }else{
                Toast.makeText(getApplicationContext(), "TRY AGAIN",
                Toast.LENGTH_LONG).show();
            }
        }
    });

INCASEOFCLICK
已经是按钮的onClickListener。这远远不是onClickListener的推荐方法。首先在CaseofClick中有一个click listener
。这不是应该怎么做的,请参考官方文档或优秀的在线教程。将内部onClick中的所有逻辑移到
INCASEOFCLICK
中,我做了另一个onClick侦听器,因为当我只留下一个时,ClickListner只工作一次。这是因为您对
按钮B
的定义/实例化是错误的。一旦你点击它,你将再次实例化它,然后它就不会被分配任何clicklistener。请参阅@AndroidWarrior的回答,我不知道怎么做。@user3775508只需将上述代码复制到
onCreate()
方法中,然后删除与按钮相关的所有其他代码,它就会正常工作。谢谢。它工作得很好,不需要onCreate(),只需删除第4、5、6行即可。谢谢