ListItemClick 在带有 ParseQueryAdapter 的 ListFragment 中不起作用
ListItemClick not working in ListFragment with ParseQueryAdapter
我的代码涉及使用 parsequeryadapter 显示从解析后端检索的数据。基于检索到的文本,我的代码在列表视图中显示了一些图像,这些图像基本上是具有自定义背景和一些文本的按钮。
问题是似乎根本没有调用 onListItemClick 方法。 (如果调用它可能会起作用)
代码构造如下:
NavActivity 包含一个片段,该片段包含 XML.
中定义的子列表片段
这是我的 ParseQueryAdapter 中的 getItemView 方法
@Override
public View getItemView(ParseObject object, View v, ViewGroup parent) {
if (v == null) {
v = View.inflate(context, R.layout.post_item, null);
}
super.getItemView(object, v, parent);
//find the elements here and set the value from the ParseObject returned
TextView1 = (TextView) v.findViewById(R.id.NumberTxtView);
Holder = (LinearLayout) v.findViewById(R.id.feloniesList);
if (object != null) {
Holder.removeAllViewsInLayout();
TextView1.setText(object.getString("comment"));
JSONArray jsonArray = object.getJSONArray("incident");
for (int i = 0; i < jsonArray.length(); i++) {
//Create a new button
Button button = new Button(getContext());
String btnText = null;
int resId = 0;
try {
//Get the string from the JSON Array
String item = jsonArray.getString(i);
button.setFocusable(false);
button.setText(item);
} catch (JSONException e) {
e.printStackTrace();
}
Holder.addView(button, new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
}
}
return v;
}
ListItemClick 方法
@Override
public void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);
feedObject = feedAdapter.getItem(position);
mListener.onListItemClicked(feedObject.getObjectId());
}
我读到 here 将其他组件设置为不可聚焦可以解决问题,但无济于事。任何帮助将不胜感激
我找到了答案,似乎可聚焦不仅适用于按钮/复选框,而且适用于 HorizontalScrollViewer 等元素。我有我的线性布局,我在其中添加按钮,包含在水平滚动查看器中。删除上述元素后,点击功能正常。
我的代码涉及使用 parsequeryadapter 显示从解析后端检索的数据。基于检索到的文本,我的代码在列表视图中显示了一些图像,这些图像基本上是具有自定义背景和一些文本的按钮。
问题是似乎根本没有调用 onListItemClick 方法。 (如果调用它可能会起作用)
代码构造如下: NavActivity 包含一个片段,该片段包含 XML.
中定义的子列表片段这是我的 ParseQueryAdapter 中的 getItemView 方法
@Override
public View getItemView(ParseObject object, View v, ViewGroup parent) {
if (v == null) {
v = View.inflate(context, R.layout.post_item, null);
}
super.getItemView(object, v, parent);
//find the elements here and set the value from the ParseObject returned
TextView1 = (TextView) v.findViewById(R.id.NumberTxtView);
Holder = (LinearLayout) v.findViewById(R.id.feloniesList);
if (object != null) {
Holder.removeAllViewsInLayout();
TextView1.setText(object.getString("comment"));
JSONArray jsonArray = object.getJSONArray("incident");
for (int i = 0; i < jsonArray.length(); i++) {
//Create a new button
Button button = new Button(getContext());
String btnText = null;
int resId = 0;
try {
//Get the string from the JSON Array
String item = jsonArray.getString(i);
button.setFocusable(false);
button.setText(item);
} catch (JSONException e) {
e.printStackTrace();
}
Holder.addView(button, new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
}
}
return v;
}
ListItemClick 方法
@Override
public void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);
feedObject = feedAdapter.getItem(position);
mListener.onListItemClicked(feedObject.getObjectId());
}
我读到 here 将其他组件设置为不可聚焦可以解决问题,但无济于事。任何帮助将不胜感激
我找到了答案,似乎可聚焦不仅适用于按钮/复选框,而且适用于 HorizontalScrollViewer 等元素。我有我的线性布局,我在其中添加按钮,包含在水平滚动查看器中。删除上述元素后,点击功能正常。