![](/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.