在项目中遇到这样的Exception:case expressions must be constant expressions
public class StandingCityActivity extends Activity implements View.OnClickListener{}
@Override public void onClick(View v) { switch (v.getId()) { case R.id.back: break; default: break; } }
从语法、逻辑上面看,都没有问题,但是eclipse报错~~~
在网上百度找解决办法,广大的程序员同志们提供了解决办法
http://blog.csdn.net/aaawqqq/article/details/20037407
主要原因是因为,当前项目是一个被其他项目引用了Library导致的。
感觉有点莫名其妙,估计和eclipse的支持有关系?或者其他什么的吧,没有深究。
一种解决办法是,在eclipse中的项目配置里面,将is Library的选项去掉
另一种解决办法是,逐个的给每个控件设置listener:
back.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub } });
补充:
在当前项目被设置为Library的时候,所有的switch都不可用。