我想将数据从登录页面传递到主活动,其中包含我的菜单,工作正常。但问题是假设用户点击特定菜单并打开另一个活动让我们说活动A.当用户按下返回按钮切换到主活动时,捆绑包会给出空指针异常。这是我的登录意图
Bundle m=new Bundle();
m.putString("userid",userid);
Intent intent=new Intent(login.this,main.class);
intent.putExtras(m);
startActivity(intent);
///////////////
main
String userid;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Bundle b=getIntent().getExtras();
}
上面的代码工作正常但是当主要活动创建另一个活动A时出现问题A.当活动A想要返回到父活动(主要)时,活动会给出空指针异常。
Intent inte=new Intent(A.this,main.class);
startActivity(inte);
答案 0 :(得分:0)
您在返回主活动时尝试访问捆绑包,但您没有在意图中创建捆绑包。检查如下,
if(getIntent().getExtras() != null)
{
Bundle b=getIntent().getExtras();
}
答案 1 :(得分:0)
如果您想要活动A中的捆绑包,那么将捆绑包发送到活动A,当您从活动A返回时,再次使用捆绑包到主活动调用意图。
答案 2 :(得分:0)
使用此:
Intent i = new Intent(this, main.class);
i.putExtra("Key1", "ABC");
i.putExtra("Key2", "123");
// Starts main.class
startActivity(i);
现在在main.class
Bundle extras = getIntent().getExtras();
if(extras!=null){
String a = extras.getString("Key1");
String b = extras.getString("Key2");
}
希望这会有效..
答案 3 :(得分:0)
为什么不将用户ID存储在SharedPreferences。
设置器:
SharedPreferences pref = getApplicationContext().getSharedPreferences("UserAccount", 0);
Editor editor = pref.edit();
editor.putString("userid", userid);
editor.commit();
吸气剂:
pref.getString("userid", "default_value");
清除:
editor.remove("userid");
editor.commit();