2011-09-15 41 views
4

我創建了一個列表視圖和我添加了一個頭(通過使用addHeaderview(佈局))給它,然後我寫單擊事件,如:如何在Android ListView標題上調用點擊事件?

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事件並沒有開火頭,所以任何人都可以告訴我如何解決我的問題?

謝謝, @nag。

+0

有在叫頭任意視圖?像按鈕或textview等.. – user370305

回答

3

只是嘗試這個..

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) 
     { 
     } 
    } 
+0

Nopes仍然沒有解僱事件。 :( – nag

+0

你的buypwr.xml中的哪個視圖? –

+0

總的XML,它只有像col1,col2,col3的頭... – nag

0

使用setOnItemClickListener來設置列表中單擊事件和實施定製OnItemClickListener你自己的使用。

android.widget.AdapterView.setOnItemClickListener(OnItemClickListener聽衆)

+0

不,我正在實現點擊事件的視圖,這是用作我的列表視圖中的標題,並且此視圖沒有任何Onitemclicklistner。 – nag

3

如果你想點擊的標題爲基本列表項。用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 
     } 
    }); 
+0

headerview只能選擇一次...使用你的建議,你能解釋我爲什麼嗎? –

0

如果你沒有任何具體的小部件(按鈕等),它可以有監聽器,你可以通過調用onItemClickListener()作爲@Nicoloas在其第一個項目位置0說你的頭。您甚至可以通過調用view.getId()爲您的標題視圖設置特定的標識並在onItemClickListener()中訪問它。否則,請告知我。

2

什麼工作對我來說:

當充氣頭視圖,將它添加到列表視圖前,然後我用這個觀點來獲取子視圖並在其上

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

還添加了一個點擊監聽器,當我將其添加到列表視圖,我使用的重載的構造與第三變量設置爲true

mListView.addHeaderView(myHeaderView, null, true); 
相關問題