2011-09-15 22 views
4

私は、リストビューを作成し、私はその後、私の好きなイベントをクリックして書き込み、それを(addHeaderview(レイアウト)を使用して)ヘッダを追加しました:Android ListView Headerでclickイベントを呼び出す方法は?

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

に設定された第3の変数とのオーバーロードコンストラクタはそのheadder内の任意のビューが存在する使用しましたか? – 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

まだイベントを発していません。あなたのbuypwr.xmlで表示されている – nag

+0

? –

+0

Total xml、col1、col2、col3 ... – nag

0

使用setOnItemClickListenerを試してみて、ためにカスタマイズされたOnItemClickListenerを実装あなた自身の使用。

android.widget.AdapterView.setOnItemClickListener(OnItemClickListenerリスナー)

+0

いいえ、私はリストビューのヘッダーとして使用され、このビューにはOnitemclicklistnerがないビューのclickイベントを実装しています。 – 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

ヘッダービューは一度しか選択できません...あなたの提案を使用して、理由を説明できますか? –

0

あなたがリスナーを持つことができ、特定のウィジェット(ボタンなど)を持っていない場合、あなたは@Nicoloasは、その最初の項目として位置0に言ったように()onItemClickListener呼び出すことで、あなたのヘッダを取得することができます。ヘッダービューの特定のIDを設定し、view.getId()を呼び出してonItemClickListener()にアクセスすることもできます。そうでなければ私に教えてください。私の仕事は何

2

リストビューに追加する前に、私は、サブビューを取得し、また

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

それをクリックリスナを追加するために、そのビューを使用し、ヘッダビューを膨らませます私はリストビューに追加したときに、私はtrue

mListView.addHeaderView(myHeaderView, null, true); 
関連する問題