我正在尝试学习Android,我正在做一个涉及两个按钮和textview的简单练习。但是,当我尝试在电子邮件程序中运行应用程序时,应用程序将被强制关闭。
以下是代码:
public class CambiarColorActivity extends Activity
implements View.OnClickListener {
Button btnRed;
Button btnBlue;
TextView text;
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.main);
TextView text = (TextView)findViewById(R.id.textView1);
btnRed=(Button)findViewById(R.id.button1);
btnBlue=(Button)findViewById(R.id.button2);
btnRed.setOnClickListener(this);
btnBlue.setOnClickListener(this);
}
public void onClick(View view) {
changeColor();
}
private void changeColor() {
if(btnRed.isPressed()) {
text.setBackgroundResource(Color.RED);
} else {
text.setBackgroundResource(Color.BLUE);
}
}
}
这些是我在Eclipse日志中发现的错误:
11-04 11:34:42.377: E/AndroidRuntime(376): Caused by: java.lang.NullPointerException
11-04 11:34:42.377: E/AndroidRuntime(376): at mi.entrenamiento.OrejanoX.CambiarColorActivity.onCreate(CambiarColorActivity.java:25)
这是我的main.xml
的一部分<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<Button
android:id="@+id/button1"
style="@style/red"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:drawableLeft="@drawable/red"
android:text="@string/red" />
<Button
android:id="@+id/button2"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:drawableLeft="@drawable/blue"
android:text="@string/azul" />
</LinearLayout>
欢迎任何帮助。
谢谢和问候,毛罗。
答案 0 :(得分:2)
因为错误是
11-04 11:34:42.377:E / AndroidRuntime(376):引起:java.lang.NullPointerException 11-04 11:34:42.377:E / AndroidRuntime(376):at mi.entrenamiento.OrejanoX.CambiarColorActivity.onCreate(CambiarColorActivity.java:25)
所以请查看文件第25行的内容。
我想这是以下几行之一。
btnRed.setOnClickListener(this);
btnBlue.setOnClickListener(this);
所以请检查你的main.xml是否为两个按钮设置了android:id。
答案 1 :(得分:1)
它说你得到NullPointerException。我想那是因为btnRed
或btnBlue
上的空是空的。检查并查看是否从findViewById
获得了有效值。
答案 2 :(得分:0)
我在main.xml上找到了这一行的错误
style="@style/red"
我删除了,一切都很好。