Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.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 开关大小写表达式必须是常量表达式,我可以';I don’我不能做“如果”的陈述_Android_Switch Statement_Qr Code - Fatal编程技术网

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、 非常感谢我做到了:):)