0

我有一个用于 android 应用程序的程序,它有 2 个活动 MainActivity 和 CarteActivity。我在 MainActivity 布局 (activity_main.xml) 上有一个按钮,它启动 QR 码扫描仪(已经使用 zxing 编程)。第二个活动布局(activity_carte.xml)有一个 ImageView,代码是:

<ImageView
    android:id="@+id/imageView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:src="@drawable/carte0" />

`

在我的可绘制文件夹中,我复制了一些名为 carte1、carte2、carte3 的图片......

我还生成了一些二维码,结果也是carte1、carte2、carte3 ...(作为文本)

现在我希望当我扫描这些二维码时,出现 CarteActivity 并且 ImageViewer 显示与代码对应的图片(当我扫描返回 carte1 作为结果的代码时,图片 carte1 出现在 ImageViewer 中),但我没有知道怎么。

我注意到在 MainActivity 中,扫描结果被存储在字符串 "contents" 中:

public void onActivityResult(int requestCode, int resultCode, Intent intent)
{
    if (requestCode == 0)
    {
        if (resultCode == RESULT_OK)
        {               
            String contents = intent.getStringExtra("SCAN_RESULT");
            String format = intent.getStringExtra("SCAN_RESULT_FORMAT");
            Log.i("xZing", "contents: "+contents+" format: "+format);

            // Handle successful scan
        }
        else if (resultCode == RESULT_CANCELED)
        {
            // Handle cancel
            Log.i("xZing", "Cancelled");
        }
    }

`

但我不知道如何正确使用它。

你能帮我吗?我敢肯定这并不难,但我不知道该怎么做。

4

1 回答 1

0

更改您的 MainActivity 调用如下

public void onActivityResult(int requestCode, int resultCode, Intent intent){
    if (requestCode == 0)
    {
        if (resultCode == RESULT_OK)
        {               
            String contents = intent.getStringExtra("SCAN_RESULT");
            String format = intent.getStringExtra("SCAN_RESULT_FORMAT");
            Log.i("xZing", "contents: "+contents+" format: "+format);

            // Handle successful scan
            Intent startNewActivityOpen = new Intent(MainActivity.this, CarteActivity.class);
            startNewActivityOpen.putExtra("QRContents",  contents);
            startActivity(startNewActivityOpen);

        }
        else if (resultCode == RESULT_CANCELED)
        {
            // Handle cancel
            Log.i("xZing", "Cancelled");
        }
    }
}

然后对 CarteActivity 进行如下更改

import android.content.Intent;
import android.widget.ImageView;

public class CarteActivity extends Activity {

     @Override
     public void onCreate(Bundle savedInstanceState) {         

        super.onCreate(savedInstanceState);    
        setContentView(R.layout.activity_carte);

        Intent bgIntent = getIntent();
                String contents = bgIntent.getStringExtra("QRContents");
                ImageView img = (ImageView)findViewById(R.id.imageView1);

                if(contents.equals("carte1")){
                    img.setImageResource(R.drawable.carte1);
                }
                if(contents.equals("carte2")){
                    img.setImageResource(R.drawable.carte2);
                }
                if(contents.equals("carte3")){
                    img.setImageResource(R.drawable.carte3);
                }
        }

        @Override
        public void onBackPressed() {
            Intent startNewActivityOpen = new Intent(CarteActivity.this, MainActivity.class);
            startActivity(startNewActivityOpen);

        }
}
于 2013-06-08T17:16:25.463 回答