Java 如何将字符串(R.id.btn_0)转换为int类型-浓缩咖啡

Java 如何将字符串(R.id.btn_0)转换为int类型-浓缩咖啡,java,android-espresso,Java,Android Espresso,我想将字符串类型转换为int。我正在使用espresso实现自动化 根据用于单击对象的espresso automation语法,onView(带id(R.id.btn_0)。执行(click()) 我有一个json文件,在那里我存储了对象 "btn_0": { "ANDROID": "withId=R.id.btn_0" } 现在,当我读取btn_0时,我得到btn_0对象的字符串值,withId()取int 注意:Integer.parseInt()将不起作用 有人能帮我吗

我想将字符串类型转换为int。我正在使用espresso实现自动化

根据用于单击对象的espresso automation语法,
onView(带id(R.id.btn_0)。执行(click())

我有一个json文件,在那里我存储了对象

"btn_0": {
      "ANDROID": "withId=R.id.btn_0"
  }
现在,当我读取btn_0时,我得到btn_0对象的字符串值,withId()取int

注意:Integer.parseInt()将不起作用


有人能帮我吗?

下面是解决方法,试试这个

   while( i < withId.length()) {
      num *= 10;
      num += withId.charAt(i++) - '0'; 

   }
while(i

此工作区在此处可用请检查:

您可以使用
Resources.getIdentifier()方法将资源名称解析为整数,我为您准备了一个示例:

@Test
public void parseResourceIdTest() {
    final Context context = InstrumentationRegistry.getTargetContext();

    assertEquals(R.id.btn_0, parseResourceId(context, "btn_0"));
}

public static int parseResourceId(@NonNull Context context, @NonNull String string) {
    return context.getResources().getIdentifier(string, "id", context.getPackageName());
}

不是像“R.ID.modeName”那样传递整个ID,而是只传递“modeName”

最终上下文=InstrumentationRegistry.getTargetContext(); int obj=context.getResources().getIdentifier(“modeName”,“id”,context.getPackageName()); onView(withId(obj)).perform(click());

我的字符串不是“1234”。它是“R.id.btn_0”,它是浓缩咖啡自动化的内部整数。但是,@Jarosław Wiśniewski解决了我的问题