【发布时间】:2012-02-01 08:15:43
【问题描述】:
我的 switch-case 语句昨天运行良好。但是当我今天早上早些时候运行代码时,eclipse给了我一个错误,用红色强调了case语句并说:case表达式必须是常量表达式,它是常量我不知道发生了什么。下面是我的代码:
public void onClick(View src)
{
switch(src.getId()) {
case R.id.playbtn:
checkwificonnection();
break;
case R.id.stopbtn:
Log.d(TAG, "onClick: stopping srvice");
Playbutton.setImageResource(R.drawable.playbtn1);
Playbutton.setVisibility(0); //visible
Stopbutton.setVisibility(4); //invisible
stopService(new Intent(RakistaRadio.this,myservice.class));
clearstatusbar();
timer.cancel();
Title.setText(" ");
Artist.setText(" ");
break;
case R.id.btnmenu:
openOptionsMenu();
break;
}
}
所有 R.id.int 都用红色下划线。
【问题讨论】:
-
能否提供
R.id.playbtn等的定义?一切都是静态的和最终的吗? -
可能你删除/修改了你的布局,而那些 id 不再存在或类似的东西......
-
R类通常由 IDE/dev 工具生成,因此对于使用的 Android 版本通常是正确的。 -
我的 R.id.* 都很好,并且存在于 android 的 gen 类中。它也在主布局中。
标签: java android switch-statement