在ChildActivity意图中,我得到了空引用异常,我是android development.Please的新手,帮助我解决这个从ParentActivity发送数据到childActivity的problem.What。
ParentActivity :我在ParentActivity中有3个EditText字段,我想将这3个字段显示到ChildActivity.There中是一个按钮控件,所以当我单击它时,它必须从ParentActivity切换到ChildActivity。
public class ParentActivity extends Activity {
private EditText EmpId;
private EditText EmpName;
private EditText Gender;
private Button btnShowInfo;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_parent);
InitializeControls();
}
private void InitializeControls() {
EmpId = (EditText) findViewById(R.id.editText1);
EmpName = (EditText) findViewById(R.id.editText2);
Gender = (EditText) findViewById(R.id.editText3);
btnShowInfo = (Button) findViewById(R.id.button1);
final Context context = this;
btnShowInfo.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
Intent ParentIntent = new Intent(context, ChildActivity.class);
ParentIntent.putExtra("Eid", EmpId.getText().toString());
ParentIntent.putExtra("EName", EmpName.getText().toString());
ParentIntent.putExtra("EGender", Gender.getText().toString());
startActivity(ParentIntent);
}
});
}
}ChildActivity ::它必须显示我在ParentActivity中输入的值。
public class ChildActivity extends Activity {
private TextView txtView1;
private TextView txtView2;
private TextView txtView3;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_child);
InitializeControls();
}
private void InitializeControls() {
txtView1 = (TextView) findViewById(R.id.editText1);
txtView2 = (TextView) findViewById(R.id.editText2);
txtView3 = (TextView) findViewById(R.id.editText3);
GetDataFromIntent();
}
private void GetDataFromIntent() {
Bundle extras = getIntent().getExtras();
if (extras == null) {
txtView1.setText("No data is received.");
} else {
txtView1.setText(extras.getString("Eid"));
txtView2.setText(extras.getString("EName"));
txtView3.setText(extras.getString("EGender"));
}
}
}例外情况:这就是我在控制台窗口中得到的。
01-05 15:04:46.210: E/AndroidRuntime(1658): Caused by: java.lang.NullPointerException
01-05 15:04:46.210: E/AndroidRuntime(1658): at com.example.androidexample1.ChildActivity.GetDataFromIntent(ChildActivity.java:36)
01-05 15:04:46.210: E/AndroidRuntime(1658): at com.example.androidexample1.ChildActivity.InitializeControls(ChildActivity.java:26)
01-05 15:04:46.210: E/AndroidRuntime(1658): at com.example.androidexample1.ChildActivity.onCreate(ChildActivity.java:19)我是安卓world.Please帮助的新手。
发布于 2014-01-06 02:44:33
因此,引起问题的代码行是:
txtView1.setText(extras.getString("Eid"));null指针异常本质上意味着您正在尝试调用某个为null的函数。在这种情况下,它可以是txtView1或extras。当您检查extra是否为null时,实际上必须是txtView1为null。根据Android文档,findViewById返回:
返回 在层次结构中具有给定id或null的视图。
因此,如果你拼错了你的文字标签,它可能会导致这个问题。检查的一个好方法是在错误之前添加此选项。
Log.v("Child","txtView1="+txtView1);https://stackoverflow.com/questions/20942058
复制相似问题