【问题标题】:Enable iterate through R file in android在android中启用遍历R文件
【发布时间】:2016-03-29 06:18:42
【问题描述】:

我正在尝试遍历所有 R.id 以查找所有 ImageView 对象并更改那里的属性。但 Android Studio 给了我一个错误。

这里是代码

public void initializeChipsViewholdersArray (){
   for (int i = 1; i<10; i ++){
        String viewholderName = "chip_00"+i;
       int id_2 = R.id.class.getFields(viewholderName).getInt(0);//erorr here
   ImageView chipViewholder= (ImageView)findViewById(id);
           chipViewholder.setVisibility(View.INVISIBLE);
}

这里有错误

Error:(28, 33) 错误:类 Class 中的方法 getFields 不能应用于给定类型; 必需:无参数 找到:字符串 原因:实际参数列表和形式参数列表的长度不同 其中 T 是一个类型变量: T 扩展类中声明的 Object

这里已经讨论过我选择的解决方案How do I iterate through the id properties of R.java class?

【问题讨论】:

  • Class.getFields() 不带参数。你是说 getField().get(null) 吗?
  • getFields() 返回R.id 类中的所有公共字段,该类是R 类中的静态内部类,它是Java 自动生成的资源类。那个方法,getFields(),不需要任何参数

标签: java android android-layout android-studio imageview


【解决方案1】:

getFields() 返回R.id 类中的所有公共字段,这是R 类中的静态内部类,它是Java 自动生成的资源类。那个方法,getFields(),不需要任何参数

您正在寻找getField(),而不是getFields()

public void initializeChipsViewholdersArray (){
   for (int i = 1; i<10; i ++){
        String viewholderName = "chip_00"+i;
       int id_2 = R.id.class.getField(viewholderName).getInt(0);
   ImageView chipViewholder= (ImageView)findViewById(id);
           chipViewholder.setVisibility(View.INVISIBLE);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-09
    • 2017-02-25
    • 2021-10-16
    • 2020-09-06
    • 1970-01-01
    相关资源
    最近更新 更多