作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 Android 开发新手,我一生都无法弄清楚为什么这会给我带来错误。错误发生在这一行: 'bu.setOnClickListener(new OnClickListener() {'
我正在学习 Lynda.com 上的 Android 开发基础教程;我的代码和老师的代码是一样的;至少我是这么认为的。
package com.lynda.lyndaproject;
import android.os.Bundle;
import android.app.Activity;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
public class Main extends Activity {
Button bu = (Button) findViewById(R.id.button1);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
bu.setOnClickListener(new OnClickListener() {
public void onClick(View v){
}
});
}
}
顺便说一下,Eclipse 似乎不允许我导入任何东西;我确实相信导入“android.view.View”应该导入所有必需的内容。
最佳答案
首先,您需要修复导入。您使用了错误的 OnClickListener
。换行
import android.content.DialogInterface.OnClickListener;
到
import android.view.View.OnClickListener;
接下来,您需要移动线路
Button bu = (Button) findViewById(R.id.button1);
调用setContentView(...)
之后。因此,您的 onCreate
方法将如下所示:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button bu = (Button) findViewById(R.id.button1);
bu.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v){
}
});
}
这是因为 findViewById(...)
在当前布局中查找 View
。由于尚未通过 setContentView
设置,因此它将始终返回 null
。
关于java - setOnClickListener错误: No Idea Why?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21611662/
我是一名优秀的程序员,十分优秀!