如何在Android ListView Header上调用click事件?

时间:2011-09-15 11:20:07

标签: android listview

我创建了一个列表视图,并为其添加了一个标题(通过使用addHeaderview(layout)),然后我写了一个点击事件,如:

LayoutInflater inflater = (LayoutInflater)getSystemService(LAYOUT_INFLATER_SERVICE); 
        View itemView = inflater.inflate(R.layout.buypwr, null);
itemView.setOnClickListner(new OnClickListner(){

@Override
public void onClick(View v){
}

但是当我点击标题时,这个onClick事件没有触发,所以有人能告诉我如何解决我的问题?

5 个答案:

答案 0 :(得分:4)

试试吧..

itemView.setOnClickListner(new View.OnClickListner()
{
   @Override
   public void onClick(View v)
   {
   }
}

如果你在buypwr.xml中有TextView,那么试试这个

TextView txt = (TextView)itemView.findViewById(......);
txt.setOnClickListner(new View.OnClickListner()
    {
       @Override
       public void onClick(View v)
       {
       }
    }

答案 1 :(得分:4)

如果您想要可点击的标题作为基本列表项。使用ListView对其进行充气。

LayoutInflater inflater = LayoutInflater.from(mContext)
mListView.addHeaderView(inflater.inflate(R.layout.list_item_header, mListView, false));
mListView.setAdapter(mAdapter);
mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            //parent.getItemAtPosition(position)
            //Prepare to get it at position == 0
        }
    });

答案 2 :(得分:3)

对我有用的是什么:

在对标题视图进行膨胀之前,在将其添加到列表视图之前,我使用该视图获取子视图并在其上添加单击侦听器

myHeaderView.findViewById(R.id.myButton).setOnClickListener(new OnClickListener() { ... } );

另外,当我将它添加到listView时,我使用了重载的构造函数,第三个变量设置为true

mListView.addHeaderView(myHeaderView, null, true);

答案 3 :(得分:0)

使用setOnItemClickListener为列表设置click事件,并实现自定义的OnItemClickListener供您自己使用。

android.widget.AdapterView.setOnItemClickListener(OnItemClickListener listener)

答案 4 :(得分:0)

如果你没有任何可以拥有监听器的特定小部件(按钮等),你可以通过调用onItemClickListener()来获取你的标题,因为@Nicoloas在位置0表示它是第一个项目。您甚至可以为标题视图设置特定的标识,并通过调用view.getId()在onItemClickListener()中访问它。如果不是,请告诉我。