Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/188.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 不使用R.id的任何理由<;id_name>;作为我代码中的标识符?_Android - Fatal编程技术网

Android 不使用R.id的任何理由<;id_name>;作为我代码中的标识符?

Android 不使用R.id的任何理由<;id_name>;作为我代码中的标识符?,android,Android,有什么理由不使用R.id吗。作为我代码中的常量 例如,在ids.xml文件中,我有: <item name="status_running" type="id"/> <item name="status_finished" type="id"/> <item name="status_error" type="id"/> 有什么理由不这样使用R.id值吗?您正试图以id身份访问名称值。。。您应该为id设置一个值 因为您使用的是一个项目列表(我想),所以您应该

有什么理由不使用R.id吗。作为我代码中的常量

例如,在ids.xml文件中,我有:

<item name="status_running" type="id"/>
<item name="status_finished" type="id"/>
<item name="status_error" type="id"/>

有什么理由不这样使用R.id值吗?

您正试图以id身份访问名称值。。。您应该为id设置一个值


因为您使用的是一个项目列表(我想),所以您应该以不同的方式访问它。

使用这样的ID似乎是合理的。您的代码示例的唯一问题可能是android构建系统中最近的更改。库项目中的资源ID不再是常量,不能在switch语句中使用

<>这只会影响你,如果这个代码将成为图书馆项目的一部分,至少要考虑一下。


有关详细信息,请参阅博文。

只要不将其存储在数据库中,它与其他任何文件一样,只是一个常量int。但如果要存储此值(如文件或数据库),则可能会遇到问题,因为AFAIK id值可能会在不同版本之间更改。

No-这与任何UI无关。ID是R.java文件中的一个int值,我在代码中使用这个int值作为标识符。我想知道是否有什么原因我不知道为什么我不应该这样做,而不是编写像
final static int something=0x4这样的代码啊,是的-我知道我读过一些关于他们不在哪里的文章。谢谢:)
switch (status) {
    case R.id.status_running:
         mProgressTextView.setText("Running");
         break;
    case R.id.status_finished:
         mProgressTextView.setText("Finished");
         setNextSyncTime();
         break;
    case R.id.status_error:
         mProgressTextView.setText("Error: " + intent.getStringExtra(Intent.EXTRA_TEXT));
         break;
    default:
         break;
}