编译器无法识别setOnClickListener(....);

时间:2019-12-11 11:25:56

标签: java android android-layout android-activity

我正在ActivityMain.java中创建按钮 编译器无法识别onSetClickListener。我想念什么?

package com.example.mydiceapp;

import android.os.Bundle;
import android.view.View;
import android.widget.Button;

import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }


    Button rollButton = findViewById(R.id.blahblah);

    rollButton.setOnClickListener(new View.OnClickListener());

}

4 个答案:

答案 0 :(得分:3)

您需要在findViewById()方法内使用setOnClickListener()并使用onCreate()

尝试一下

package com.example.mydiceapp;

import android.os.Bundle;
import android.view.View;
import android.widget.Button;

import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

         Button rollButton = findViewById(R.id.blahblah);

         rollButton.setOnClickListener(new View.OnClickListener());
    }




}

答案 1 :(得分:1)

将其放入您的onCreate()

Button rollButton = findViewById(R.id.blahblah);
rollButton.setOnClickListener(new View.OnClickListener());

答案 2 :(得分:0)

您的代码返回错误,因为您将可操作代码放置在方法之外。如果仔细观察,会发现生成错误的行未包含在任何方法中。

除变量声明和赋值外,动作应包含在方法内。因此,没有任何方法封装的setOnClickListener调用显然是行不通的。只需将这两行移动到onCreate()方法中,一切都会好起来的。这是一个例子:

...

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

     Button rollButton = findViewById(R.id.blahblah);
     rollButton.setOnClickListener(new View.OnClickListener());
}

...

我希望这会有所帮助。快活的编码!

答案 3 :(得分:0)

您应该在onCreate()方法内使用setOnClickListener()

package com.example.mydiceapp;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    Button rollButton = findViewById(R.id.blahblah);
    rollButton.setOnClickListener(new View.OnClickListener(){
        @Override
        public void onClick(View v) {
          // Do anything 
        }
    });

}