第一个Activity:
package com.Adr.work3;import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;public class Adr3Activity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button button = (Button) findViewById(R.id.OK);
button.setOnClickListener(myname);
} private OnClickListener myname = new OnClickListener() { @Override
public void onClick(View v) {
EditText inname = (EditText) findViewById(R.id.name); Intent intent = new Intent();
Bundle bundle = new Bundle();
bundle.putString("NAME", inname.getText().toString());
intent.putExtras(bundle);
intent.setClass(Adr3Activity.this, Welcome.class);
startActivity(intent);
} };
}
第二个Activitypackage com.Adr.work3;import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;public class Welcome extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.welcome);
TextView receivename=(TextView) findViewById(R.id.welcome_name);
Bundle bundle=this.getIntent().getExtras();
String name=bundle.getString("NAME");
receivename.setText(name);
}
}错误报告:
02-11 05:17:46.404: E/AndroidRuntime(563): FATAL EXCEPTION: main
02-11 05:17:46.404: E/AndroidRuntime(563): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.Adr.work3/com.Adr.work3.Welcome}: java.lang.NullPointerException
02-11 05:17:46.404: E/AndroidRuntime(563): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1956)
02-11 05:17:46.404: E/AndroidRuntime(563): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)
02-11 05:17:46.404: E/AndroidRuntime(563): at android.app.ActivityThread.access$600(ActivityThread.java:123)
02-11 05:17:46.404: E/AndroidRuntime(563): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)
02-11 05:17:46.404: E/AndroidRuntime(563): at android.os.Handler.dispatchMessage(Handler.java:99)
02-11 05:17:46.404: E/AndroidRuntime(563): at android.os.Looper.loop(Looper.java:137)
02-11 05:17:46.404: E/AndroidRuntime(563): at android.app.ActivityThread.main(ActivityThread.java:4424)
02-11 05:17:46.404: E/AndroidRuntime(563): at java.lang.reflect.Method.invokeNative(Native Method)
02-11 05:17:46.404: E/AndroidRuntime(563): at java.lang.reflect.Method.invoke(Method.java:511)
02-11 05:17:46.404: E/AndroidRuntime(563): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
02-11 05:17:46.404: E/AndroidRuntime(563): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
02-11 05:17:46.404: E/AndroidRuntime(563): at dalvik.system.NativeStart.main(Native Method)
02-11 05:17:46.404: E/AndroidRuntime(563): Caused by: java.lang.NullPointerException
02-11 05:17:46.404: E/AndroidRuntime(563): at com.Adr.work3.Welcome.onCreate(Welcome.java:16)
02-11 05:17:46.404: E/AndroidRuntime(563): at android.app.Activity.performCreate(Activity.java:4465)
02-11 05:17:46.404: E/AndroidRuntime(563): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
02-11 05:17:46.404: E/AndroidRuntime(563): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920)
02-11 05:17:46.404: E/AndroidRuntime(563): ... 11 more感觉是第二个Activity的receivename.setText(name)一直报错...这句注销掉可以运行...
package com.Adr.work3;import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;public class Adr3Activity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button button = (Button) findViewById(R.id.OK);
button.setOnClickListener(myname);
} private OnClickListener myname = new OnClickListener() { @Override
public void onClick(View v) {
EditText inname = (EditText) findViewById(R.id.name); Intent intent = new Intent();
Bundle bundle = new Bundle();
bundle.putString("NAME", inname.getText().toString());
intent.putExtras(bundle);
intent.setClass(Adr3Activity.this, Welcome.class);
startActivity(intent);
} };
}
第二个Activitypackage com.Adr.work3;import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;public class Welcome extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.welcome);
TextView receivename=(TextView) findViewById(R.id.welcome_name);
Bundle bundle=this.getIntent().getExtras();
String name=bundle.getString("NAME");
receivename.setText(name);
}
}错误报告:
02-11 05:17:46.404: E/AndroidRuntime(563): FATAL EXCEPTION: main
02-11 05:17:46.404: E/AndroidRuntime(563): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.Adr.work3/com.Adr.work3.Welcome}: java.lang.NullPointerException
02-11 05:17:46.404: E/AndroidRuntime(563): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1956)
02-11 05:17:46.404: E/AndroidRuntime(563): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)
02-11 05:17:46.404: E/AndroidRuntime(563): at android.app.ActivityThread.access$600(ActivityThread.java:123)
02-11 05:17:46.404: E/AndroidRuntime(563): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)
02-11 05:17:46.404: E/AndroidRuntime(563): at android.os.Handler.dispatchMessage(Handler.java:99)
02-11 05:17:46.404: E/AndroidRuntime(563): at android.os.Looper.loop(Looper.java:137)
02-11 05:17:46.404: E/AndroidRuntime(563): at android.app.ActivityThread.main(ActivityThread.java:4424)
02-11 05:17:46.404: E/AndroidRuntime(563): at java.lang.reflect.Method.invokeNative(Native Method)
02-11 05:17:46.404: E/AndroidRuntime(563): at java.lang.reflect.Method.invoke(Method.java:511)
02-11 05:17:46.404: E/AndroidRuntime(563): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
02-11 05:17:46.404: E/AndroidRuntime(563): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
02-11 05:17:46.404: E/AndroidRuntime(563): at dalvik.system.NativeStart.main(Native Method)
02-11 05:17:46.404: E/AndroidRuntime(563): Caused by: java.lang.NullPointerException
02-11 05:17:46.404: E/AndroidRuntime(563): at com.Adr.work3.Welcome.onCreate(Welcome.java:16)
02-11 05:17:46.404: E/AndroidRuntime(563): at android.app.Activity.performCreate(Activity.java:4465)
02-11 05:17:46.404: E/AndroidRuntime(563): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
02-11 05:17:46.404: E/AndroidRuntime(563): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920)
02-11 05:17:46.404: E/AndroidRuntime(563): ... 11 more感觉是第二个Activity的receivename.setText(name)一直报错...这句注销掉可以运行...
可以改为 button.setOnClickListener(new onClickListener(){
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent=new Intent();
Bundle bundle=new Bundle();
EditText edite=(EditText)findViewById(R.id.ok);
bundle.putString("NAME",edite.getText().toString());
intent.setClass(Adr3Activity.this, Second.class);
intent.putExtras(bundle);
startActivity(intent);
}
});
//程序思路是这样的:程序开始对第一个activity进行初始化,但就是页面而言第一个创建时没有错误,初始化第二个activity需要第一个activity传入的事件,第一个由于错误没有传入,导致第二个activity产生空指针异常
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;public class Adr3Activity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button button = (Button) findViewById(R.id.OK);
button.setOnClickListener(new OnClickListener(){
public void onClick(View v) {
EditText inname = (EditText) findViewById(R.id.name); Intent intent = new Intent();
Bundle bundle = new Bundle();
bundle.putString("NAME", inname.getText().toString());
intent.putExtras(bundle);
intent.setClass(Adr3Activity.this, Welcome.class);
startActivity(intent);
}
});
}
}这是第一个修改后的,还是不行,错误还是提示第二个receivename.setText(name);这句空指针。
第一个layout:<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" > <TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello" />
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="请输入内容"
/>
<EditText
android:id="@+id/name"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text=""
/>
<Button
android:id="@+id/OK"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="OK"
/>
</LinearLayout>第二个layout:<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" > <TextView
android:name="@+id/welcome_name"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text=""
/>
</LinearLayout>
应该没什么问题的,
name为空
第一个窗体没有输入东西就直接点按钮了吧