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