Android 开关大小写表达式必须是常量表达式,我可以';I don’我不能做“如果”的陈述
这是一个二维码生成项目,这是二维码的来源 这里是常数情况下的一个错误 我知道它必须投入,否则,但我不知道如何在这个项目中有人可以帮助我强>Android 开关大小写表达式必须是常量表达式,我可以';I don’我不能做“如果”的陈述,android,switch-statement,qr-code,Android,Switch Statement,Qr Code,这是一个二维码生成项目,这是二维码的来源 这里是常数情况下的一个错误 我知道它必须投入,否则,但我不知道如何在这个项目中有人可以帮助我 //That is a QR code generator project`enter code here` @Override public void onClick(View v) { // TODO Auto-generated method stub switch (v.getId()) {
//That is a QR code generator project`enter code here`
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.button1://<--- is the error .. I can't make it If-else statement
EditText qrInput = (EditText) findViewById(R.id.QR);
String qrInputText = qrInput.getText().toString();
Log.v(LOG_TAG, qrInputText);
//Find screen size
WindowManager manager = (WindowManager) getSystemService(WINDOW_SERVICE);
Display display = manager.getDefaultDisplay();
Point point = new Point();
display.getSize(point);
int width = point.x;
int height = point.y;
int smallerDimension = width < height ? width : height;
smallerDimension = smallerDimension * 3/4;
//Encode with a QR Code image
QREncoder qrCodeEncoder = new QREncoder(qrInputText,
null,
Contents.Type.TEXT,
BarcodeFormat.QR_CODE.toString(),
smallerDimension);
try {
Bitmap bitmap = qrCodeEncoder.encodeAsBitmap();
ImageView myImage = (ImageView) findViewById(R.id.imageView1);
myImage.setImageBitmap(bitmap);
} catch (WriterException e) {
e.printStackTrace();
}
break;
// More buttons go here (if any) ...
}
}
}
//这是一个二维码生成器项目`在此处输入代码`
@凌驾
公共void onClick(视图v){
//TODO自动生成的方法存根
开关(v.getId()){
case R.id.button1://看看关于这个的官方博客帖子:
基本上,库项目中的资源常量不再是“最终的”。从ADT站点:
换句话说,常量在库项目中不是最终的。原因很简单:当多个库项目合并时,字段的实际值(必须是唯一的)可能会发生冲突。在ADT 14之前,所有字段都是最终字段,因此,无论何时使用,所有库都必须将其所有资源和关联的Java代码与主项目一起重新编译。这对性能不利,因为它会使构建速度非常慢。它还阻止分发不包含源代码的库项目e、 限制库项目的使用范围
因此,如果你修复它将转换为if和else开关
int id = view.getId();
if (id == R.id.button1) {
action1();
} else if (id == R.id.button2) {
action2();
} else if (id == R.id.button3) {
action3();
}
我认为开关盒应该是这样工作的。你的问题是什么?代码看起来很好,ID“button1”是否存在?当按钮被创建时,它可能是一个输入错误。你更改了按钮ID吗?case switch语句有一个错误,这“从ADT 14开始,资源字段不能用作切换案例。请调用此修复程序以获取更多信息。”在我看来,还有一个修复选项(迁移android代码)当我搜索时,我发现我必须与If-else交换case开关。但是我不知道如何交换,因为我不太理解这个密码,但我需要它来生成二维码。你也可以通过将光标放在switch关键字上并按Ctrl-1快速修复此问题。ADT将自动将case语句转换为If-else语句s、 非常感谢我做到了:):)