【问题标题】:AlertDialog & SnackBar alertsAlertDialog 和 SnackBar 警报
【发布时间】:2017-04-16 12:26:44
【问题描述】:

是否可以关闭 AlertDialog 而无需单击/设置 PositiveButton/NegativeButton?

        Delete.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            db.DeleteRecord(_id);
            db.close();
            Snackbar.make(textEntryView, "Removed", Snackbar.LENGTH_LONG).setDuration(700).show();
        }
    });

使用添加到我的布局中的自定义按钮,我想单击它并让它关闭 AlertDialog。

我目前共有 3 个按钮

  1. 更新记录
  2. 删除记录
  3. 完成(这个正在使用 alert.setPositiveButton)

我在布局中添加了另外两个,因此我可以使用 Snackbar 警报,我知道我可以通过使用 setNeutralButton 来做到这一点,但它不会显示 SnackBar 警报。

【问题讨论】:

  • 对带有 3 个按钮的 alertdialog 使用自定义布局...
  • 是的,您可以在自定义按钮的 onclick 内调用dismiss(),它会关闭对话框。
  • 对于您在问题中写的最后一行 - 您可以覆盖中性按钮的 onClickListener 并显示小吃栏。
  • 我尝试的一切都只是说它无法解决方法我一定做错了。如果这有所作为,我正在使用 API 23..
  • 仍然无法弄清楚我需要导入什么库或什么才能拥有dismiss()。 :(

标签: java android android-sqlite android-alertdialog android-snackbar


【解决方案1】:

我这个代码可以工作-

       final AlertDialog.Builder builder = new AlertDialog.Builder(this);
       final FrameLayout customView= (FrameLayout) View.inflate(this, R.layout.custome_view, null);
       final Button button = (Button) customView.findViewById(R.id.my_button);
       button.setText(mTvEmail.getText().toString());
       builder.setView(customView);
       final AlertDialog alertDialog = builder.create();
       alertDialog.show();

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

【讨论】:

    【解决方案2】:

    为了更容易,这就是整件事

    private void CreatePopup(Long id) {
    
        final LayoutInflater Manual = LayoutInflater.from(this);
        final View textEntryView = Manual.inflate(update, null);
        final EditText infoData = (EditText) textEntryView.findViewById(R.id.InfoData);
        final AlertDialog.Builder alert = new AlertDialog.Builder(this);
        final TextView TextSet = (TextView) textEntryView.findViewById(R.id.product);
        final Button Accept = (Button) textEntryView.findViewById(R.id.button);
        final Button Delete = (Button) textEntryView.findViewById(R.id.delete);
    
        final SQLite db = new SQLite(this);
        final Long _id = id;
    
        final SQLiteDatabase X = db.getReadableDatabase();
        final Cursor c;
        c = X.rawQuery("SELECT Product FROM Inventory WHERE _id =" + _id, null);
        c.moveToFirst();
        final String Data = c.getString(c.getColumnIndexOrThrow("Product"));
        TextSet.setText(Data);
        c.close();
    
        Accept.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if (infoData.length() != 0) {
                final Editable Data = infoData.getText();
                db.UpdateRecord(Data, _id);
                db.close();
                Snackbar.make(textEntryView, "Updated", Snackbar.LENGTH_LONG).setDuration(700).show();
    
            }
            else {
                    Toast toast = Toast.makeText(getApplicationContext(),
                            "Input Quantity!", Toast.LENGTH_SHORT);
                    toast.show();
                }
        }});
        Delete.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                db.DeleteRecord(_id);
                db.close();
                Snackbar.make(textEntryView, "Removed", Snackbar.LENGTH_LONG).setDuration(700).show();
            }
        });
        alert.setTitle("Update Quantity").setView(textEntryView);
        alert.setPositiveButton("Done", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                CreateListView();
            }
        });
        alert.show();
    }
    

    【讨论】:

      猜你喜欢
      • 2020-07-20
      • 2011-09-09
      • 1970-01-01
      • 2021-09-27
      • 2021-04-22
      • 2022-01-16
      • 1970-01-01
      • 2012-08-27
      • 1970-01-01
      相关资源
      最近更新 更多