这是一个新手问题,但为什么我不能在 onCreate 方法之外的按钮上调用 setOnClickListener 方法?
例如,为什么我不能这样做?或者也许 Eclipse 只是没有在 onCreate 方法之外暗示 setOnClickListener 代码?因为什么都没有显示出来。
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_layout);
}
Button button = (Button) findViewById(R.id.button_send);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// Do something in response to button click
}
});
您可以在任何函数中设置点击监听器。但这不是你的确切问题。
实际问题是
setContentView(R.layout.main_layout);
你可以打电话按Id查找视图之后的功能设置内容视图. 设置内容视图用于设置活动的布局。您的布局包含不同的视图,例如按钮等。因此,如果您不设置布局,则无法使用 findViewById 访问您的视图,如果无法访问,则无法使用它们。
所以正确的顺序是:
1 Set layout on your activity using setContentView.
2 Find id for your view using findViewById.
3 Then use your views for your purposes.
始终首先关注基础知识。
还有一个问题是您在任何函数之外调用 setOnClickListener 。在任何函数静态块之外,只允许函数声明和赋值。下面的声明都不是它们。所以它永远不会执行,回调也永远不会发生。
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// Do something in response to button click
}
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)