![](/img/trans.png)
[英]Parcelable with arraylist<CustomClass> passing value from activity to fragment android
[英]Parcelable with arraylist<string> passing value from activity to fragment android
我需要將arraylist值從片段發送到活動。 我嘗試使用很少的代碼,但返回值為null。任何有關arraylist<string>
代碼或parcelable教程的幫助都將值從活動傳遞到片段。
這是我傳遞arraylist的代碼:
Intent intent = getIntent();
intent.putExtra("key", selectImages);
setResult(RESULT_OK, intent);
finish();
這是Myparcelable的類代碼:
import java.util.ArrayList;
import android.os.Parcel;
import android.os.Parcelable;
public class ObjectA implements Parcelable {
public ArrayList<String> choices;
public ObjectA (ArrayList<String> choices) {
this.choices = choices;
}
@SuppressWarnings("unchecked")
public ObjectA (Parcel parcel) {
parcel.readArrayList(null);
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeStringList(choices);
}
// Method to recreate a ObjectA from a Parcel
public static Creator<ObjectA> CREATOR = new Creator<ObjectA>() {
@Override
public ObjectA createFromParcel(Parcel source) {
return new ObjectA(source);
}
@Override
public ObjectA[] newArray(int size) {
return new ObjectA[size];
}
};
}
這是用於提取片段的代碼(使其僅顯示以檢查值):
ArrayList<String> ar1 = getActivity().getIntent().getParcelableExtra("key");
Toast.makeText(getActivity(),
"Path of array in home Fragment: "+ar1,
Toast.LENGTH_LONG).show();
當我運行代碼時,ar1的返回值為null。 我在哪里犯錯?
謝謝,
public void onActivityResult(int requestCode, int resultCode, Intent data){
if (requestCode == 999) {
@SuppressWarnings("unchecked")
ArrayList<String> ar1 = data.getStringArrayListExtra("key");
if(ar1.size()!= 0){
for (int i = 0; i < ar1.size(); i++) {
String value = ar1.get(i);
Toast.makeText(getActivity(),
"Path of array in home Fragment: "+ar1,
Toast.LENGTH_LONG).show();
} } } }
錯過了這一行: ArrayList<String> ar1 = data.getStringArrayListExtra("key");
謝謝您的幫助
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.