这是我的主要活动,并且我传递了一个字符串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"));
当我按提交时,我的应用程序关闭。
答案 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);