簡體   English   中英

可與arraylist合並 <string> 將值從活動傳遞到片段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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM