我正在嘗試創建專案的登錄/注冊部分,但在將注冊資訊傳遞回登錄活動時遇到了問題。我在MainActivity中初始化了username_info、password_info和name_info,想通過Intent發送給SignUpActivity。
Intent i = new Intent(this, SignUpActivity.class);
i.putExtra("username_info", username_info);
i.putExtra("password_info", password_info);
i.putExtra("name_info", name_info);
startActivityForResult(i, 101);
在其他活動中添加值后,它會像這樣發回(兩個活動中的陣列串列具有相同的名稱):
Intent r = new Intent();
r.putExtra("username_info", username_info);
r.putExtra("password_info", password_info);
r.putExtra("name_info", name_info);
setResult(Activity.RESULT_OK, r);
finish();
}
它在這里收到:
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 101) {
if (resultCode == Activity.RESULT_OK) {
Bundle e = getIntent().getExtras();
username_info = e.getStringArrayList("username_info");
password_info = e.getStringArrayList("password_info");
name_info = e.getStringArrayList("name_info");
}
}
}
但是當我回到 MainActivity 時,陣列串列沒有改變。我是 Android Studio 的新手,所以我可能只是犯了一個簡單的錯誤。
編輯:當用戶名和密碼不匹配時,我崩潰了,但它應該回傳一個祝酒詞:
@Override
public void onClick(View v) {
username = username_input.getText().toString();
password = password_input.getText().toString();
int index = username_info.indexOf(username);
if (username_info.size() < 1) {
Toast.makeText(MainActivity.this, "You must sign up first", Toast.LENGTH_SHORT).show();
}
else if (password_info.get(index).equals(password)) {
Toast.makeText(MainActivity.this, "make an activity", Toast.LENGTH_SHORT).show();
// open activity
}
else {
Toast.makeText(MainActivity.this, "Incorrect username/password", Toast.LENGTH_SHORT).show();
}
}
});
uj5u.com熱心網友回復:
不要使用getIntent()in onActivityResult,而是使用Intent data:
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 101) {
if (resultCode == Activity.RESULT_OK) {
Bundle e = data.getExtras();
username_info = e.getStringArrayList("username_info");
password_info = e.getStringArrayList("password_info");
name_info = e.getStringArrayList("name_info");
}
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/366489.html
上一篇:`android:exported需要為<activity>`明確指定,即使我已經指定了它
下一篇:如何剪輯影像以洗掉其填充
