ListView onItemClickListener没有做任何事情

时间:2015-11-13 14:47:25

标签: android listview android-fragments android-listview android-listfragment

我有一个ListFragment用作标签。我试图在我的ListView上使用OnItemSelectedListener,它必须启动另一个活动,并根据所选项目将特定额外的内容添加到打算中。我使用以下代码:

View rootView = inflater.inflate(R.layout.fragment_priority_tab, container, false);
    ListView listView = (ListView) rootView.findViewById(android.R.id.list);
    List<String> printedList = calculateProportions();
    ArrayAdapter<String> expensesAdapter = new ArrayAdapter<>(mContext,
            android.R.layout.simple_list_item_1, printedList);
    listView.setAdapter(expensesAdapter);
    listView.setClickable(true);
    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, final int position, long id) {
            Intent intent = new Intent(mContext, ListPriority.class);
            switch (position) {
                case 0:
                    intent.putExtra("priority", "low");
                    startActivity(intent);
                    break;
                case 1:
                    intent.putExtra("priority", "med");
                    startActivity(intent);
                    break;
                case 2:
                    intent.putExtra("priority", "high");
                    startActivity(intent);
                    break;
                case 3:
                    intent.putExtra("priority", "obsolete");
                    startActivity(intent);
                    break;
            }
        }
    });

我没有任何错误或警告,但我的活动没有开始。当我调试应用程序时,我点击任何项目,我甚至没有达到我的断点。

我的ListView in XML:

<ListView
    android:id="@android:id/list"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    />

我的java代码位于ListFragment中的onCreateView

2 个答案:

答案 0 :(得分:3)

ListFragment处理自己的OnItemClickListener。而不是设置监听器,覆盖onListItemClick()

答案 1 :(得分:0)

在您的java类中,您的id声明是错误的:

改变自,

ListView listView = (ListView) rootView.findViewById(android.R.id.list);

ListView listView = (ListView) rootView.findViewById(R.id.list);

您的xml id声明错误:

改变自,

<ListView
    android:id="@android:id/list"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" />

<ListView
    android:id="@+id/list"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" />