首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从一种意图切换到另一种意图时获得空引用异常

从一种意图切换到另一种意图时获得空引用异常
EN

Stack Overflow用户
提问于 2014-01-06 02:37:36
回答 1查看 136关注 0票数 0

在ChildActivity意图中,我得到了空引用异常,我是android development.Please的新手,帮助我解决这个从ParentActivity发送数据到childActivity的problem.What。

ParentActivity :我在ParentActivity中有3个EditText字段,我想将这3个字段显示到ChildActivity.There中是一个按钮控件,所以当我单击它时,它必须从ParentActivity切换到ChildActivity。

代码语言:javascript
复制
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中输入的值。

代码语言:javascript
复制
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"));
        }
    }

}

例外情况:这就是我在控制台窗口中得到的。

代码语言:javascript
复制
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帮助的新手。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-06 02:44:33

因此,引起问题的代码行是:

代码语言:javascript
复制
txtView1.setText(extras.getString("Eid"));

null指针异常本质上意味着您正在尝试调用某个为null的函数。在这种情况下,它可以是txtView1extras。当您检查extra是否为null时,实际上必须是txtView1为null。根据Android文档findViewById返回:

返回 在层次结构中具有给定id或null的视图。

因此,如果你拼错了你的文字标签,它可能会导致这个问题。检查的一个好方法是在错误之前添加此选项。

代码语言:javascript
复制
Log.v("Child","txtView1="+txtView1);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20942058

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档