使用意图传递字符串时出现错误

时间:2018-10-30 13:23:15

标签: android

这是我的主要活动,并且我传递了一个字符串strname

Intent i = new Intent(getApplicationContext(),newpage.class);
            i.putExtra("firstname", strname);
            startActivity(i);

这是新页面,它将显示此活动

TextView uname1 = (TextView) findViewById(R.id.textView15);
        uname1.setText(getIntent().getExtras().getString("firstname"));

当我按提交时,我的应用程序关闭。

4 个答案:

答案 0 :(得分:0)

当您尝试在空引用中调用方法时,会发生

NullPointerException。例如,如果getIntent().getExtras()的getIntent()为null-> null.getExtras(),则将调用NPE。

在使用Intent之前,请检查该Intent是否为非null,以避免NullPointerException。

Intent intent = getIntent();
String firstName = "";
if (intent != null) {
    firstName = intent.getStringExtra("firstname");
}
uname1.setText(firstName);

答案 1 :(得分:0)

查看此帖子的答案: How do I pass data between Activities in Android application?

并尝试不使用ApplicationContext,而是使用BaseContext (请参阅:difference and when to use getApplication(), getApplicationContext(), getBaseContext() and someClass.this

答案 2 :(得分:0)

当您尝试在空引用中调用方法时,会发生NullPointerException。

getString像

TextView uname1 = (TextView) findViewById(R.id.textView15);
if (intent.getStringExtra("firstname")!=null) {
uname1.setText(getIntent().getStringExtras("firstname"));
}

答案 3 :(得分:0)

尝试:

活动1:

Intent myIntent = new Intent(Activity1.this, Activity2.class); Bundle b = new Bundle(); b.putString("firstname", strname); myIntent.putExtras(b);

startActivity(myIntent);

活动2:

Bundle b = getIntent().getExtras(); String value = b.getString("key"); uname1.setText(value);