第一个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)一直报错...这句注销掉可以运行...

解决方案 »

  1.   

    报错在receivename.setText这行,你看看是不是控件没获取到
      

  2.   

    错在第一个activity,监听器内部响应事件写错了
      可以改为 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产生空指针异常
      

  3.   

    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(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>
      

  4.   

     没楼主的代码测试了,没出现楼主所说的问题,这是一个很简单的activity直接的传值,小细节上查一下,
    应该没什么问题的,
      

  5.   

    receivename.setText(name);
    name为空
    第一个窗体没有输入东西就直接点按钮了吧