我有一个标签活动,然后在其中一个活动中,我想放置一个按钮来进行不同的活动。但是,当我对按钮进行编码(没有错误)但是在启动应用程序时,它会崩溃并显示错误代码:
11-14 12:50:43.783: E/AndroidRuntime(10933): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.dist.distguide/com.dist.distguide.MainActivity}: java.lang.NullPointerException
然而,当我删除按钮编码时,应用程序启动正常。
这是我的XML文件:
<?xml version="1.0" encoding="utf-8"?>
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/tabhost"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/logo1">
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="5dp">
<TabWidget
android:id="@android:id/tabs"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="5dp" >
<Button
android:id="@+id/Distancecalc"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Distance Calculator" />
<Button
android:id="@+id/Distance"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Distance Calculator" />
</FrameLayout>
</LinearLayout>
</TabHost>
然后是我的Java:
Intent intentHome = new Intent().setClass(this, HomeActivity.class);
TabSpec tabSpecHome = tabHost
.newTabSpec("Home")
.setIndicator("", ressources.getDrawable(R.drawable.icon_home_config))
.setContent(intentHome);
Button add = (Button)findViewById(R.id.Distance1);
add.bringToFront();
add.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
Intent myIntent = new Intent(MainActivity.this,DistanceCalc.class);
startActivity(myIntent);
}
});
我在这里做错了什么? 请帮忙! 谢谢
答案 0 :(得分:5)
更改
Button add = (Button)findViewById(R.id.Distance1);
到
Button add = (Button)findViewById(R.id.Distancecalc);
您的按钮ID为Distancecalc
。并且您尝试使用Distance1
初始化它。