2012-04-25 6 views
0

私はカスタムリストビューを持っている中でのImageButton要素に押されたときに...リストビュー

私はレイアウトを構築していますリストビューの各項目...

マイレイアウト意志をListItemの位置を取得する方法4つのテキストビューと1つのImageButtonを持っています。私のlistviewサイズは10要素です。

今、私は、ユーザーが3番目のリスト項目のImageButtonを押した場合、私は3番目のアクティビティを表示する必要があると同じように...押されたボタンの位置に応じて

を別のアクティビティを起動する必要があります..私は直面しています

問題positioを取得する方法を、私を助けてください..私は、私は「)(setOnItemClickLIstener」を追加したが、IMAGEBUTTONが押されたときにその呼び出され得ていない。..

のImageButtonの位置番号を取得することができません

ですnボタンを押したままにします。

答えて

0

これには2つの方法があります.1つはリスナーをボタンに置​​き、次にアダプタにはすべてのボタンにリスナーを配置する必要があります。これらのリスナーには、電話する。

ボタンにリスナーを置くことができず、リスト上でsetOnItemClickListenerを使用することができませんでした。そうすれば、自分のポジションを持ち、適切なアクティビティを開始できます。あなたのアダプタのごgetViewメソッド()メソッドで

0

...このメソッドを置く...

mybutton.setOnClickListener(new OnClickListener() { 
private int pos = position; 

    @Override 
public void onClick(View v) { 
Toast.makeText(context, "position="+ String.valueOf(pos), Toast.LENGTH_SHORT).show(); 

    } 
}); 

0
これは...位置をトーストします(または、あなたが位置の値を取得することができます)

私はこのように解決します。 私のアダプタのgetview()メソッドで、タグをmy ImageButtonに設定し、後で使用するために のsetOnClickListenerメソッドに保存しました。ホルダーは、getView()メソッドの内部で使用される静的クラスです。

 public View getView(int position, View convertView, ViewGroup parent){ 
    //... 
    holder.imgButton = (ImageButton)rowView.findViewById(R.id.imageViewBookProject); 
    holder.imgButton.setTag(position); 
    holder.imgButton.setOnClickListener(new View.OnClickListener() { 

     public void onClick(View v) { 
     String tag = v.getTag().toString(); 
     Log.d("clicked button", tag); 
     //store the position of the clicked button for later use in the code 
     lastClicked = Integer.parseInt(tag); 
     //perform my action 
     } 

    }); 
0

ちょうどあなたのXMLファイルでこれを置く:

<ListView 
.... 
.... 
android:focusable="false" 
android:focusableInTouchMode="false"/> 
+0

@Jeff ...ありがとう!!! –