0

カスタムリストビューがあります...

レイアウトで構築しているリストビューの各項目...

私のレイアウトには 4 つのテキスト ビューと 1 つの ImageButton があります。リストビューのサイズは 10 要素です。

ここで、押されたボタンの位置に応じて異なるアクティビティを起動する必要があります..

ユーザーが 3 番目のリスト項目 ImageButton を押した場合と同様に、3 番目のアクティビティを表示する必要があります。

私が直面している問題は、ImageButton の位置番号を取得できないことです。

「setOnItemClickLIstener()」を追加しましたが、imagebutton が押されたときに呼び出されません..

押されたImageButtonの位置を取得する方法を教えてください...

4

4 に答える 4

0

アダプタのgetview()メソッドに...このメソッドを入れてください...

  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();

  }
 });

これは位置を乾杯します...(または位置の値を取得できます)

于 2012-04-25T18:17:12.620 に答える
0

私はこの方法で解決します。アダプターの getview() メソッドで、タグを ImageButton に設定し、後で使用するために setOnClickListener メソッドに保存しました。holder は 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
        }

     });
于 2013-06-20T14:33:23.980 に答える
0

これを XML ファイルに入れるだけです。

<ListView  
....
....
android:focusable="false"
android:focusableInTouchMode="false"/>   
于 2013-06-20T14:52:33.880 に答える
0

それには 2 つの方法があります。1 つはボタンにリスナーを配置する方法です。次に、アダプターですべてのボタンにリスナーを配置する必要があります。これらのリスナーには、呼び出す適切なアクティビティを既に配置しています。

または、リスナーをボタンに配置してリストで setOnItemClickListener を使用することはできません。そうすれば、位置が決まり、適切なアクティビティを開始できます。

于 2012-04-25T18:08:36.523 に答える