现在我尝试使用 intent extra 来传递和接收 bundle 字符串数组列表,但由于某种原因,当我尝试使用 get(0)
从中检索第一个字符串时,列表从未传递我得到一个空指针错误的列表,有人可以帮我解决这个问题吗?
第一个 Activity (注册 Activity ):
public static final String string_array = "geoquiz.android.bignerdranch.com.string_array";
final ArrayList<String> myStringArray = new ArrayList<>();
myStringArray.add(username.getText().toString());
myStringArray.add(firstName.getText().toString());
myStringArray.add(lastName.getText().toString());
Intent i = new Intent(signUpActivity.this,loginActivity.class);
i.putExtra("string_array", myStringArray);
startActivity(i);
第二个 Activity (登录 Activity ):
final Bundle stringArrayList = getIntent().getExtras();
final ArrayList<String> stringArray = new ArrayList<> ();
stringArray = stringArrayList.getStringArrayList("string_array");
if(username.getText().toString().equals(stringArray.get(0)))
Toast.makeText(loginActivity.this, "You have successfully logged in!", Toast.LENGTH_SHORT).show();
最佳答案
使用 i.putStringArrayListExtra()
代替 i.putExtra()
。
此外,添加一个日志条目以确保数组按预期填充。
Log.i("myStringArray", myStringArray.toString());
Intent i = new Intent(signUpActivity.this,loginActivity.class);
i.putStringArrayListExtra("string_array", myStringArray); //modified
startActivity(i);
另外,把这段代码中的final
去掉:
final Bundle stringArrayList = getIntent().getExtras();
//final ArrayList<String> stringArray = new ArrayList<> (); //no need for this line
ArrayList<String> stringArray = stringArrayList.getStringArrayList("string_array"); //just declare and assign
关于java - 如何将字符串 Arraylist 从一个 Activity 传递到另一个 Activity ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29810964/