我正在尝试将标记值设置为循环内的图像按钮。问题是它们的值都是一样的我需要根据循环设置它们的值。这是我的代码。
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开始到光标大小,但是我得到的值与所有图像按钮上的光标数相同。
答案 0 :(得分: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()?
答案 1 :(得分:0)
您可以根据需要设置ImageView的标记。因为它的setTag()方法采用Object类型参数 例如。
imageView.setTag(45);
当我们得到imageView.getTag()时,我们将得到45个ImageView Tag值的值