0

ListView の各行にボタンを配置しましたが、そのボタンの位置 (行の番号) を取得し、行ではなくそのボタンを押したときに TOAST を使用して表示したいと考えています。

私はそれを行う方法がわからない、トーストを表示することさえできません、ここに私のコードがあります:

        ListView.setOnItemClickListener(new OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> list, View view, int position, long id) {
            Log.i(TAG, "onListItemClick: " + position);

            Toast.makeText(MainActivity.this, "" + position, Toast.LENGTH_SHORT).show();            

            }
    });

私は Android の開発方法を学んでおり、英語のネイティブ スピーカーではありません。ご協力ありがとうございます。

4

4 に答える 4

0

参考までに、要素に Buttons や ImageButtons などの Clickable 要素がある場合はいつでもListView、それらがクリック イベントを制御します。またListView、クリックイベントを受け入れる機会がありません。

だから、onListItemClick(...)ここでは役に立たない。

あなたがしなければならないことは、setOnClickListenerアダプタークラスのボタンを書き、あなたの選択された位置を取得することListViewです.

于 2016-08-08T16:30:57.467 に答える
0

AdapersetOnclickListnerで、特定のボタンの を記述します。ここで位置を取得できます。

public View getView(final int position, View convertView, ViewGroup parent) {
    // TODO Auto-generated method stub
    // TODO Auto-generated method stub
    final InviteOddViewHolder holderodd;

    int odd_bg = R.drawable.listing_odd;
    int even_bg = R.drawable.listing_even;

    if (convertView == null) {
        convertView = mInflater.inflate(R.layout.bookmark_list_item, null);
        holderodd = new InviteOddViewHolder();
        holderodd.button = (Button) convertView
                .findViewById(R.id.button);

        holderodd.button.setOnClickListener(new OnClickListener() {           

        @Override
       public void onClick(View v) 
        {
        Toast.makeText(this, "Posit", Toast.LENGTH_LONG).show();
         }    
       });
        convertView.setTag(holderodd);

    } else {
        holderodd = (InviteOddViewHolder) convertView.getTag();

    }
    return convertView;
}

class InviteOddViewHolder {
    public Button button;

}
于 2013-08-31T15:10:39.193 に答える
0
@Override
public void onListItemClick(ListView l, View v, int position, long id) {
    // TODO Auto-generated method stub

    String selection = l.getItemAtPosition(position).toString();
    Toast.makeText(this.getActivity(), selection, Toast.LENGTH_LONG).show();
}
于 2016-08-08T14:06:11.097 に答える