【问题标题】:Setting tag value to image button将标签值设置为图像按钮
【发布时间】:2012-12-17 17:36:07
【问题描述】:

我正在尝试为循环内的图像按钮设置标签值。问题是它们的值都是相同的,我需要根据循环设置它们的值。这是我的代码。

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 开始设置为光标的大小,但我得到的值与所有图像按钮上的光标数相同。

【问题讨论】:

  • 你没有对按钮做任何事情,另外,n 永远不会改变。
  • 这是你的完整代码?
  • 在 onclick 监听器中有一个 toast 来检查它们的标签值。遇到同样的问题。我已经编辑了我的帖子,忘记在循环中包含增量。它在那里,但仍然是同样的问题。
  • @ljpv14 : 什么是标签值?
  • 我更新了我的帖子。我包括了标签的初始值。似乎所有iamgebutton的标签都设置为光标的大小。

标签: android tags imagebutton


【解决方案1】:

您可以根据需要设置 ImageView 的标签。因为它 setTag() 方法采用 Object 类型参数 例如。

imageView.setTag(45);

当我们得到 imageView.getTag() 时,我们将得到 ImageView Tag 值的 45 个值

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 很抱歉将其包含在内,但这将用于未来的验证。
    • 这解决了我的问题。我稍后会接受它,但仍然需要想办法在我的下一个过程中使用它。无论如何,谢谢!
    • 检查onClick中的v.getTag().toString()是否返回正确的标签
    • 它是通过在循环中删除它来实现的。
    • 然后它工作了吗?你调用 update.getTag() 来显示在 toast 中,我认为总是只有一个“更新”变量,所以 getTag 总是返回相同的值,不是吗?
    猜你喜欢
    • 2011-02-15
    • 2021-06-16
    • 2022-11-24
    • 2015-03-04
    • 2010-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多