“ setOnClicklistener”在Android Studio 3.5中不起作用

时间:2019-09-20 17:19:30

标签: java android android-studio

我是Android编程的新手,我正在制作一个简单的浏览器,在其中我想通过单击按钮打开我的网络活动,但我惊讶地发现setOnClicklistener在Android Studio 3.5中不可用,因为我刚刚更新了{ {3}}

3 个答案:

答案 0 :(得分:6)

您需要将setOnClickListener放在活动回调之一中。在您的onCreate()方法中,将按钮移到那里,然后setOnClickListener()

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.filters); 

    Button button = findViewById(R.id.google);
    button.setOnClickListener(new View.OnClickListener() {
       @Override
       public void onClick(View v) {
            //TODO()
       }
    }
}

答案 1 :(得分:6)

访问/初始化onCreate()方法中的按钮。

private Button btn;
    @Override
    public void onCreate(@Nullable Bundle savedInstanceState, @Nullable PersistableBundle persistentState) {
        super.onCreate(savedInstanceState, persistentState);
        setContentView(R.layout.home_search_layout);

        btn = findViewById(R.id.someId);

        setClickListener();

    }

    private void setClickListener() {

        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

            }
        });
    }

答案 2 :(得分:1)

所有功能元素的代码都将在活动的onCreate()方法中初始化。由于要使按钮可单击,因此需要在setOnClickListener()方法中添加onCreate(),如下所示:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_selectionactivity); 

    Button button = findViewById(R.id.google); //this id should be of a button not a view
    button.setOnClickListener(new View.OnClickListener() {
       @Override
       public void onClick(View v) {
            //TODO do something
       }
    }
}

我突出显示了一些文本,因为从图像中您可以看到,从代码完成菜单中获得的第9个 是setOnClickListener,但是父级来自android.view.View组,但是不是来自android.widget.Button。确保R.id.google是一个Button,并将代码放入onCreate()