![](/img/trans.png)
[英]How to pass Class of Class in ArrayList from one Activity to Another Activity
[英]How to pass a string Arraylist from one activity to another?
现在,我尝试使用Intent Extra来通过捆绑字符串数组列表进行传递和接收,但是由于某些原因,该列表从未通过,当我尝试使用get(0)
从列表中检索第一个字符串时,出现空指针错误,可以有人请帮我吗?
首次活动(注册活动):
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);
第二活动(登录活动):
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();
我认为您从第二个活动的意图中弄错了arrayList:
Intent intent = getIntent();
ArrayList<String> stringArray = intent.getStringArrayListExtra("string_array");
代替i.putExtra()
使用i.putStringArrayListExtra()
。
另外,添加日志条目以确保按预期填充了阵列。
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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.