繁体   English   中英

OnItemClickListener 未在列表视图中触发

[英]OnItemClickListener is not firing in listview

我正在做一个学校项目,其中我有一个包含两个片段的 main_activity。 其中一个片段包含一个列表视图。 列表视图通过适配器填充,这一切似乎都很好。 但是,我尝试向此列表视图添加 OnItemClickListener,但我真的无法触发它。

这是带有列表视图的片段(overview_fragment.xml):

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
   //android:descendantFocusability="blocksDescendants"
>

<ListView
    android:id="@+id/list_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:layout_editor_absoluteX="8dp"
    tools:layout_editor_absoluteY="8dp" />

这是我在overviewFragment.java 中添加监听器的地方:

public class OverviewFragment extends Fragment {
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.overview_fragment, container, false);
    final ListView listView = view.findViewById(R.id.list_view);
    AdapterView.OnItemClickListener mMessageClickedHandler = new
            AdapterView.OnItemClickListener() {
                public void onItemClick(AdapterView parent, View v, int position, long
                        id) {
                    Log.d(OverviewFragment.class.getSimpleName(), "listener in overviewFragment");
                }
            };
    listView.setOnItemClickListener(mMessageClickedHandler);
    return view;
}

这是我使用的列表项:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:descendantFocusability="blocksDescendants">

<TextView
    android:id="@+id/name"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentStart="true"
    android:layout_below="@id/name"
    />

您应该为点击侦听器添加项目和适配器以使其正常工作。 移除android:descendantFocusability="blocksDescendants"blocksDescendants移除ViewGroup所有孩子的焦点。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM