android – 更容易的方式获取视图的Id(字符串)通过其Id(int)

我是新的android和java,所以很抱歉,如果这是一个太基本的问题,但我试图找到一个解决方案在论坛和谷歌,我不能。

我在我的布局有24个按钮,所有这些按钮做类似的事情,所以我想创建一个通用的功能。但首先我需要知道他的按钮的名称(xml id)。

这个按钮的XML代码:

  <Button
      android:id="@+id/add_04"
      android:layout_width="42dp"
      android:layout_height="wrap_content"
      android:layout_gravity="center"
      android:layout_marginLeft="15dp"
      android:background="@xml/zbuttonshape"
      android:onClick="onClick"
      android:text="@string/mas" />

我为所有的按钮设置android:onClick =“onClick”。

在我的活动我已经创建一个新的函数onClick:

这是我试过的代码:

public void onClick(View v) {
        String name = v.getContext().getString(v.getId());
        String name2 = context.getString(v.getId());
        String name3 = getString(v.getId());
        String name4 = getResources().getString(v.getId()); 
}

但是当我尝试获取名称(在这种情况下,“add_04”)我总是得到“假”。

最后,我找到了一个解决方案与以下代码:

import java.lang.reflect.Field;

String name5 = null;
Field[] campos = R.id.class.getFields();
for(Field f:campos){
     try{
        if(v.getId()==f.getInt(null)){
            name5 = f.getName();
            break;
        }
       }
       catch(Exception e){
        e.printStackTrace();
    }
}

我的问题是如果没有更容易的方法来获取此ID?

提前致谢。

这种方法被误导开始。如果要将一段任意数据(例如,字符串)与视图相关联,那就是标记。 ID是数字的,它更好地保持这种方式。
http://stackoverflow.com/questions/14647810/easier-way-to-get-views-id-string-by-its-id-int

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:android – 更容易的方式获取视图的Id(字符串)通过其Id(int)