簡體   English   中英

單擊將數組數據傳遞給片段

[英]Pass Array data on click to fragment

我正在嘗試執行以下操作。 按下LinearLayout [i],應將JSONObject [i]發送到Fragment。
但是我只在哪里按下JSONObject數組中的最后一個對象。

任何幫助表示贊賞,謝謝。

LinearLayout demp[];
        JSONArray darray; //some data
        int arry_len = darray.length();
        demp = new LinearLayout[arry_len];
    JSONObject jso[] = new JSONObject[arry_len];


        for(int i=0;i<arry_len;i++)
        {
          demp[i] = new LinearLayout(dfm.getContext());
                    ViewGroup.LayoutParams mainlay_param = new ViewGroup.LayoutParams(dpToPx(310),ViewGroup.LayoutParams.WRAP_CONTENT);
                    LinearLayout.LayoutParams mainllay_layou = new LinearLayout.LayoutParams(mainlay_param);
                    demp[i].setMinimumHeight(dpToPx(150));


        demp[i].setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View v) {
                            Bundle args = new Bundle();

                            args.putString("JSON",jso[i].toString());
                            FragmentManager fman = getActivity().getFragmentManager();
                            ActionOrder aord = new ActionOrder();
                            aord.setArguments(args);
                            aord.show(fman,"ordact");
                        }
                });


    }

我認為您應該保存每個布局的當前索引以使用視圖方法setTag(int i)單擊布局時獲取JSONObject數組,並通過getTag()獲取值

它應該是這樣的

demp[i].setTag(i);
demp[i].setOnClickListener(new View.OnClickListener() {
         public void onClick(View v) {
             int position = (Integer)v.getTag(); // use this position instead of i
             args.putString("JSON",jso[position].toString());
          }
....}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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