通过getIdentifier的资源ID返回0

悉达思·维努(Siddharth Venu)
private String isChecked(String id) {
    id = "R.id." + id;
    int ID = getResources().getIdentifier(id, "id", "com.example.android.justjava");
    CheckBox checkBox = (CheckBox) findViewById(ID);
    return String.valueOf(checkBox.isChecked());
}

我将值check_whipped_cream(xml文档中复选框ID)传递到上面的函数中,但是当我调试应用程序时,变量ID始终等于0。这是怎么回事?

注意:isChecked()在最后一行方法中调用的是CheckBox类。

黑带

最大的问题是

 id = "R.id." + id;

你问的Android寻找R.id.idid你既然已经提供了"id"作为第二个参数。应该是公正的id为避免拼写错误的单词出现问题,您应该依靠.getPackageName()的返回值,而不是自己对其进行硬编码。

摆脱 id = "R.id." + id;

getResources().getIdentifier(id, "id", getPackageName());

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章