我的数据传输到其他活动有问题我的代码。
...
Intent i = new Intent(MainActivity.this, LoggedMain.class);
Intent toOther = new Intent(MainActivity.this, PickerFormActivity.class);
toOther.putExtra(LOGIN_NAME, userName);
toOther.putExtra(PASSWORD, password);
i.putExtra(LOGIN_NAME, userName);
startActivity(i);
在LoggedMain活动中,我可以使用
获取价值Intent i = getIntent();
String userName = i.getExtras().getString(MainActivity.LOGIN_NAME);
但是当我在PickerFormActivity活动中使用时,我得到空指针异常
final String username = getIntent().getExtras().getString(MainActivity.LOGIN_NAME);
final String password = getIntent().getExtras().getString(MainActivity.PASSWORD);
有人可以帮我解决这个问题吗?
答案 0 :(得分:0)
而不是使用String mString = getIntent().getExtras().getString(string);
使用String mString = (String) getIntent().getSerializableExtra(string);
答案 1 :(得分:0)
您应该以其他方式启动活动PickerFormActivity。数据随着创建的意图“传播”。因此,如果您使用其他意图启动活动,则会丢失数据。
例如,如果从LoggedMain启动PickerFormActivity,则可以执行以下操作:
Intent i = new Intent(MainActivity.this, LoggedMain.class);
i.putExtra(LOGIN_NAME, userName);
i.putExtra(PASSWORD, password);
i.putExtra(LOGIN_NAME, userName);
startActivity(i);
然后
Intent i = getIntent();
String userName = i.getExtras().getString(MainActivity.LOGIN_NAME);
String password = i.getExtras().getString(MainActivity.LOGIN_NAME);
Intent other = new Intent(LoggedMain.this, PickerFormActivity.class);
other.putExtra(LOGIN_NAME, userName);
other.putExtra(PASSWORD, password);
startActivity(other);
答案 2 :(得分:0)
您正在宣布Intent to other的额外内容,但您没有称之为意图。如果你在LoggedMain.class之后调用Intent toOther,你需要将你想要的所有额外内容传递给LogntMain,然后再将它们传递给下一个intent。 您只能在First Activity中声明要传递给Second Activity的内容。 在这种情况下,最好的办法是使用SharedPreferences