有没有理由不使用R.id.< id_name>作为我代码中的const?
例如,在我的ids.xml文件中,我有:
<item name="status_running" type="id"/>
<item name="status_finished" type="id"/>
<item name="status_error" type="id"/>
允许我做以下事情:
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;
}
有什么理由不使用这样的R.id值?
答案 0 :(得分:2)
使用这样的ID似乎是合理的。您的代码示例的唯一问题可能是android构建系统中的最新更改。库项目中的资源ID不再是常量,不能在switch语句中使用。
如果此代码将成为库项目的一部分,这只会影响您,至少需要考虑这一点。
有关详细信息,请参阅博客文章Changes to Library projects in Android。
答案 1 :(得分:0)
您正在尝试将名称值作为ID访问...您应该为id设置一个值。
因为您正在使用项目列表(我推测),您应该以不同的方式访问它。
答案 2 :(得分:0)
只要你不将它存储在数据库中,它就像其他任何东西一样只是一个常量int。但是如果你将存储这个值(比如文件或数据库),你可能会遇到问题,因为AFAIK id值可能会在构建之间发生变化。