Android listview:有一个listview的标题,如何将click事件添加到textview元素?

时间:2015-07-27 01:19:47

标签: android android-listview click

在片段中,有一个列表视图,我向listview添加一个标题。

有MainActivity.java,我添加了一个click事件。 MyAdapter是我定义的一个类。

MyAdapter adapter;
ListView search_history_list;
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();


LinearLayout header = (LinearLayout) inflater.inflate(R.layout.search_listview_header, null);
search_history_list.addHeaderView(header,null,false);
View listheader = inflater.inflate(R.layout.search_listview_header,null);
TextView clearAll = (TextView)listheader.findViewById(R.id.clearall);
adapter = new MyAdapter(getActivity(),list);
search_history_list = (ListView)view.findViewById(R.id.search_history_list);
search_history_list.setAdapter(adapter);
clearAll.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                list.removeAll(list);
                adapter.notifyDataSetChanged();
                search_history_list.invalidate();
            }
        });
clearAll.setEnabled(true);

search_listview_header.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:clickable="true"
    android:focusable="true"
    >
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="热门搜索"
        android:textSize="15sp"

        android:layout_marginTop="27dp"/>

    <com.shijiebang.offlinemap.commom.view.FlowLayout
        android:id="@+id/search_flowLayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:layout_marginLeft="14dp">

    </com.shijiebang.offlinemap.commom.view.FlowLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:layout_marginBottom="20dp">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="搜索历史"
            android:textSize="15sp"

            android:layout_marginTop="27dp"/>
        <TextView
            android:id="@+id/clearall"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="清除搜索历史"
            android:textColor="#49A2FC"
            android:layout_marginLeft="175dp"
            android:layout_marginTop="28dp"
            android:textSize="14sp"
            android:focusable="true"
            android:clickable="true"/>
    </LinearLayout>
</LinearLayout>

但是当我点击文本视图时,它不起作用。请帮忙。

2 个答案:

答案 0 :(得分:0)

您将header添加为列表视图标头。
但是在另一个视图listheader实例中找到视图并设置onclick 所以你的setonclick代码将不起作用 试试这个:View listheader = header;
希望这会有所帮助。

答案 1 :(得分:0)

检查完代码后,我看不到视图&#34; listheader&#34;用来。所以我不确定如何点击文本视图。我建议为列表项(即列表的每一行)创建模型和布局,然后实例化自定义适配器中的每一行并设置单击侦听器。要提高列表的性能,可以实现视图持有者。看看http://www.vogella.com/tutorials/AndroidListView/article.html#adapterperformance_holder