2

ループ内の画像ボタンにタグ値を設定しようとしています。問題は、それらの値がすべて同じであることです。ループに応じて値を設定する必要があります。これが私のコードです。

int n = 0;
Cursor c = db.getUserExercises(Integer.parseInt(id), musclegroup);
tag = c.getCount();
if(c.moveToFirst())
        {

do{
               update = new ImageButton(this);
                update.setBackgroundResource(R.drawable.updatebtn);
                update.setTag(n);
                update.setOnClickListener(new View.OnClickListener() {

                    public void onClick(View v) {

                        for(int i=0;i<tag;i++)
                        {
                            if(Integer.parseInt(((ImageButton)v).getTag().toString()) == i)
                            {
                                Toast.makeText(getBaseContext(), update.getTag().toString(), Toast.LENGTH_SHORT).show();
                            }
                        }
                     }
                    });
n++;
}while(c.moveToNext());

値を 0 からカーソルのサイズに設定するつもりですが、すべての画像ボタンのカーソルの数と同じ値を取得しています。

4

2 に答える 2

1

要件として ImageView のタグを設定できます。setTag() メソッドは Object 型の引数を取るので、例えば。

imageView.setTag(45);

imageView.getTag() を取得すると、ImageView タグ値の 45 値が取得されます

于 2014-03-21T09:05:54.440 に答える
0

onClick のこのコードのポイントは何ですか?

if(Integer.parseInt(((ImageButton)v).getTag().toString()) == i)
                            {
                                Toast.makeText(getBaseContext(), update.getTag().toString(), Toast.LENGTH_SHORT).show();
                            }

だけ電話したくないですか

Toast.makeText(getBaseContext(), v.getTag().toString(), Toast.LENGTH_SHORT).show();

onClick で、「for」サイクルと「if」ステートメントを使用せv.getTag()ず、update.getTag() の代わりに使用しますか?

于 2012-12-17T17:44:35.250 に答える