Alertdialog在if语句中没有显示

时间:2017-05-06 14:14:42

标签: java android alertdialog

我正在构建一个小应用程序来扫描条形码并将它们放入数据库中(使用ZXing库)。在进行扫描并且条形码不存在于数据库中之后,我想显示一个允许用户手动输入名称的弹出对话框。 如果在onClickListener中调用该对话框,则该对话框非常有效,但是当我尝试将其放入' if'另一个方法中的语句(检查扫描结果是否在数据库中)对话框没有显示。

奇怪的是,我把标签放在方法的开头,最后,它们都显示在日志中,但是alertdialog没有出现,它让我回到了主要的活动没有任何错误......

public void popUP (String barcode) {
    Log.d(TAG, "method started");
AlertDialog.Builder mBuilder = new AlertDialog.Builder(MainActivity.this);
            View mView = getLayoutInflater().inflate(R.layout.dialog_input, null);
            TextView tv = (TextView) mView.findViewById(R.id.textView2);
            final EditText et = (EditText) mView.findViewById(R.id.item1);
            Button bt1 = (Button) mView.findViewById(R.id.button2);
            Button bt2 = (Button) mView.findViewById(R.id.button3);
            final String code = barcode1;

            bt1.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {

                    mydb.addNewItem(et.getText().toString(), code);
                    Intent intent = new Intent(MainActivity.this, MainActivity.class);
                    startActivity(intent);

                }
            });
            bt2.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {

                    Intent i = new Intent(MainActivity.this, MainActivity.class);
                    startActivity(i);

                }
            });

            mBuilder.setView(mView);
            AlertDialog dialog = mBuilder.create();
            dialog.show();
            Log.d(TAG,"dialog shown");
              }

这是我试图给popUP充气的方法

 public void onActivityResult(int requestCode, int resultCode, Intent intent) {
    IntentResult scanResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, intent);
    final String barcode = scanResult.getContents();
    if (scanResult != null) {
        if(scanResult.getContents() == null) {
            Log.d(TAG, "Cancelled Scan");
            Toast.makeText(this, "Cancelled", Toast.LENGTH_LONG).show();
        } else {
            Log.d(TAG, "SCANNED");

            int rows = mydb.checkRows(barcode);
            if (rows == -1){
                Log.d(TAG, "popUP should appear");

                popUP(barcode); //INVOKING THE ALERT DIALOG

            } else {
                Log.d(TAG, "found and attempting adding");
                mydb.addItem(barcode, rows);
            }


        }
    } else {

        Toast.makeText(this, "oddal zero", Toast.LENGTH_LONG);
    }
    Intent intynt = new Intent(this, MainActivity.class);
    startActivity(intynt);
}

0 个答案:

没有答案