onListItemClick显示为"从未使用"

时间:2017-10-15 18:47:26

标签: android android-listfragment

下面是我第一次尝试设置点击活动的列表片段的代码(就像测试一样)。 我已经按照Android文档示例:List Fragment Example

但是,onListItemClick显示为"从未使用"。当我运行应用程序时,我的列表会显示,但是当我点击其中的项目时,我只是返回以下内容:

D / ViewRootImpl:ViewPostImeInputStage ACTION_DOWN

XML:

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context="com.example.administrationuser.piclo.ListViewFragment"
        tools:showIn="@layout/activity_list_view"
        tools:layout_editor_absoluteY="0dp"
        tools:layout_editor_absoluteX="0dp"
        >

    <FrameLayout
        android:id="@+id/list_container_id"
        android:layout_width="0dp"
        android:layout_height="0dp"
        tools:layout_editor_absoluteY="8dp"
        tools:layout_editor_absoluteX="8dp">

        <ListView
            android:id="@android:id/list"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:drawSelectorOnTop="false" >
        </ListView>

    </FrameLayout>

</android.support.constraint.ConstraintLayout>

这是列表片段:

package com.example.administrationuser.piclo;

import android.app.Activity;
import android.content.Intent;
import android.support.v4.app.Fragment;
import android.os.Bundle;
import android.support.v4.app.ListFragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListAdapter;



public class ListViewFragment extends ListFragment {

    public ListViewFragment() {}

        String[] myStringArray = new String[]{"aa","bbb","ccccc","dddddd"};

        @Override
        public void onActivityCreated(Bundle savedInstanceState) {
            super.onActivityCreated(savedInstanceState);

            // Populate list with our static array of titles.
            setListAdapter(new ArrayAdapter<String>(getActivity(),
                    android.R.layout.simple_list_item_activated_1, myStringArray));
        }


    @Override
    public void onListItemClick(ListView l, View v, int position, long id) {
        showDetails(position);   
    }

        void showDetails(int index) {

            int mCurCheckPosition = index;
            Intent intent = new Intent();
            intent.setClass(getActivity(), MessageDetails.class);

            intent.putExtra("Inty", mCurCheckPosition);
            startActivity(intent);

            startActivity(intent);
            }

}

1 个答案:

答案 0 :(得分:0)

我已经解决了这个问题。 这对于任何经验丰富的Android开发人员来说都是微不足道的,而且似乎很明显,但这里的初学者可能会陷入这个陷阱......

...不要将您的父活动命名为“ListView”...它会混淆OnListItemClick覆盖因为它不知道它应该覆盖哪个ListView类...实际的那个或者您可能拥有的那个不幸的是,通过父母活动最糟糕的名称选择创建。