java - 试图调用本地数据库变量并且应用程序停止工作

标签 java android database variables android-alertdialog

如果我从本地数据库调用变量,我的应用程序将停止工作。我使用了带有字符串的 ALertDialog(让我大声翻译它),并且尝试从本地数据库调用变量。

public class CameraActivity extends Activity
{
    private BdLocal bdl = new BdLocal(); //DB
    public static final int TAMANHOAREAFUMACA = 100;
    public static final int QUALIDADEJPEG = 100; 

    PreviewCamera mPreview;

    @Override
    protected void onCreate(Bundle savedInstanceState) {

        AlertDialog dialog;
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setMessage(getResources().getString(R.string.afericao_instrucao) +
                String.valueOf(bdl.getLauTempo()) + //this variable make my app stop woking
                getResources().getString(R.string.fotos) +
                String.valueOf(bdl.getQntFotos()) + //this variable make my app stop woking
                getResources().getString(R.string.segundos));

        builder.setPositiveButton(android.R.string.ok, null);
        dialog = builder.create();
        dialog.show();

        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
        setContentView(R.layout.activity_camera);
    }

我已经使用了一些其他代码,但总是让我的应用程序停止工作。

解决方案?

最佳答案

如果没有堆栈跟踪和 BdLocal 代码,调试起来非常困难。但是,您不能在 setContentView 之前添加对话框。考虑将所有代码移至 onResume 方法:

@Override
protected void onCreate(Bundle savedInstanceState) {  
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
    setContentView(R.layout.activity_camera);
}

@Override
protected void onResume(){
  super.onResume();
  AlertDialog dialog;
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setMessage(getResources().getString(R.string.afericao_instrucao) +
                String.valueOf(bdl.getLauTempo()) + //this variable make my app stop woking
                getResources().getString(R.string.fotos) +
                String.valueOf(bdl.getQntFotos()) + //this variable make my app stop woking
                getResources().getString(R.string.segundos));

        builder.setPositiveButton(android.R.string.ok, null);
        dialog = builder.create();
        dialog.show();
}

如果 Activity 尚未添加到窗口中,您就无法真正创建对话框。

关于java - 试图调用本地数据库变量并且应用程序停止工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28854901/

相关文章:

java - 为什么 RGBA 位图需要 3x3 数组来存储 1 个像素,如何避免这种情况?

android - Android应用错误:未找到Kotlin类,但仅在Release apk上

java - 如何在 webdriver 中捕获页面发出的所有请求? Browsermob有什么替代品吗?

java - 程序执行是非顺序的。为什么?

java - 为 Java 中的 WCF 服务生成代理和 PHP 重复消息错误

c++ - 使用 Qt 连接到本地数据库

mysql - 从聚合值中确定 "first user who did x"

java - 为什么将 boolean 原始值更改为 boolean 对象引用?

java - Android Studio导入库项目后如何生成R.java?

mysql - 如何获取最后 5 个唯一的产品 ID?