Java 如何将字符串(R.id.btn_0)转换为int类型-浓缩咖啡
我想将字符串类型转换为int。我正在使用espresso实现自动化 根据用于单击对象的espresso automation语法,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()将不起作用 有人能帮我吗
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解决了我的问题