【问题标题】:Pass Array data on click to fragment单击以传递数组数据到片段
【发布时间】:2018-12-03 11:32:29
【问题描述】:

我正在尝试执行以下操作。 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");
                        }
                });


    }

【问题讨论】:

    标签: android android-layout android-linearlayout onclicklistener


    【解决方案1】:

    我认为您应该在单击布局时保存每个布局的当前索引以获取 JSONObject 数组 通过使用查看方法setTag(int i) 并通过getTag() 获取值

    【讨论】:

      【解决方案2】:

      应该是这样的

      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());
                }
      ....}
      

      【讨论】:

        猜你喜欢
        • 2023-03-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-07-21
        • 1970-01-01
        • 1970-01-01
        • 2019-08-19
        相关资源
        最近更新 更多