应用程序意外停止。由以下原因导致的错误:Java.lang.NullPointerException
main.java应用程序意外停止。由以下原因导致的错误:Java.lang.NullPointerException,java,android,android-xml,android-logcat,Java,Android,Android Xml,Android Logcat,main.java package com.learnactivities; import android.os.Bundle; import android.app.Activity; import android.content.Intent; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button;
package com.learnactivities;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class Main extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity);
Button b = (Button) findViewById(R.id.button1);
b.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(Main.this, Second.class));
}
});
}
}
activity.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".Main" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/button1" />
</RelativeLayout>
}
second.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".Second" >
<TextView
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="16dp"
android:layout_marginTop="15dp"
android:text="@string/nd" />
</RelativeLayout>
R.id.button1
在second.xml
中声明,但您正在activity.xml
中查找它。所以在Main
中
Button b = (Button) findViewById(R.id.button1);
b.setOnClickListener(new OnClickListener()
findViewById
返回null请在主类中尝试此操作
TextView b = (TextView ) findViewById(R.id.textView1);
b.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(Main.this, Second.class));
}
});
而且在清单中的变化如下所示
<activity android:name=".Second" />
我在manifest.xml中确实有这个。。我应该在哪里买这个。。。??有没有具体的答案?还有,清单中的活动条目是错误的。类名是第二个,但条目是区分大小写的。黑带:你能说得具体点吗。。。我该怎么办?我刚添加了我看到的信息@SHANKAR您需要在第一个xml中有一个按钮,或者通过添加android:clickable=“true”
并更改为textview b=(textview)findViewById(R.id.textview 1)使textview可点击
将textview id设置为textView1
@SHANKAR您应该在活动中声明一个带有该id的按钮。xml@Raghunandan:非常感谢你的建议!正如您所提到的,我知道,如果我使用TextView,我应该设置android:clickable=“true”。非常感谢你!
Button b = (Button) findViewById(R.id.button1);
b.setOnClickListener(new OnClickListener()
TextView b = (TextView ) findViewById(R.id.textView1);
b.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(Main.this, Second.class));
}
});
<activity android:name=".Second" />