【问题标题】:onListItemClick shows as "never used"onListItemClick 显示为“从未使用过”
【发布时间】:2017-10-15 18:47:25
【问题描述】:

下面是我第一次尝试设置点击进入活动的列表片段的代码(就像测试一样)。 我在以下位置关注了 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);
            }

}

【问题讨论】:

    标签: android android-listfragment


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-12
      • 2011-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多