点击片段时传递数组数据
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");
}
});
}
我认为您应该保存每个布局的当前索引,以便在单击布局时获取 JSONObject 数组
通过使用视图方法 setTag(int i)
并通过 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());
}
....}
我正在尝试执行以下操作。
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");
}
});
}
我认为您应该保存每个布局的当前索引,以便在单击布局时获取 JSONObject 数组
通过使用视图方法 setTag(int i)
并通过 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());
}
....}