android - DialogBox 导致应用程序崩溃。

标签 android mysql json

在我们开始之前

首先,让我先说这是我的第一个 Android 应用程序,我一无所知。因此,如果有任何愚蠢或不值得努力的方法,请告诉我。

问题

我正在构建一个与 MySQL 数据库相关联的应用程序,该数据库托管在网络服务器世界某处的网络服务器上。这个应用程序扫描是我们附加到我们所有 Assets 的条形码,这些条形码链接到 Assets 登记册,其中包含该 Assets 的所有详细信息。数据将作为 JSON 响应发送。

我正在逐个开发应用程序。感谢本指南,我已经完成了扫描仪部分。但是,我现在想显示一个带有该 Assets 信息的对话框窗口(主要是因为我不知道如何让应用程序移动到一个新窗口)。目前,我正在努力打开对话框。一旦完成扫描,应用程序就会崩溃。

代码

这段代码在我没有对话框时运行,但如果我有就会崩溃。

PreviewCallback previewCb = new PreviewCallback() {
    public void onPreviewFrame(byte[] data, Camera camera) {
        Camera.Parameters parameters = camera.getParameters();
        Size size = parameters.getPreviewSize();

        Image barcode = new Image(size.width, size.height, "Y800");
        barcode.setData(data);

        int result = scanner.scanImage(barcode);

        if (result != 0) {
            previewing = false;
            mCamera.setPreviewCallback(null);
            mCamera.stopPreview();

            SymbolSet syms = scanner.getResults();
            for (Symbol sym : syms) {
                scanText.setText("barcode result " + sym.getData());
                barcodeScanned = true;

                final Dialog dialog = new Dialog(getBaseContext());
                dialog.setContentView(R.layout.custom);
                dialog.setTitle("Asset Details");
                TextView text = (TextView) dialog.findViewById(R.id.text);
                text.setText("Details to go here with the image");
                ImageView image = (ImageView) dialog.findViewById(R.id.image);
                image.setImageResource(R.drawable.ic_launcher);

                Button dialogButton = (Button) dialog.findViewById(R.id.dialogButtonOK);
                // if button is clicked, close the custom dialog
                dialogButton.setOnClickListener(new OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        dialog.dismiss();
                    }
                });
            dialog.show();
            }
        }
    }
};

问题

我显然做错了什么,但我不知道是什么。所以这是一个两部分的问题:

  1. 让应用程序切换到新的“页面”来显示数据会更容易吗?如果是这样,我该怎么做(教程或其他可能有帮助的东西)?
  2. 我在上面的代码中做错了什么?

最佳答案

final Dialog dialog = new Dialog(getBaseContext());

您需要一个 Activity 上下文来显示对话框。无论如何,getBaseContext() 几乎总是使用错误的上下文。

关于android - DialogBox 导致应用程序崩溃。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22634820/

相关文章:

android - 使用 WebRTC 在 Android 上进行 P2P 视频流

android - 创建上传队列

php - 如何自动将小数转换为数字而不是 php 中的字符串?

php - 在 MySQL 中输入海量数据

java - GeoTools解析GeoJson时没有这样的属性错误

json - 在 Go 中创建 JSON 或 slice 数组

android - 如何显示整个世界并在其上放置标记?

android - 如何制作无法卸载的Android应用程序

MySql GROUP BY + IN 性能

java - 如何验证我没有收到 @JsonProperty 和 @JsonAlias 中定义的两个值?