亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 AlertDialog 中創建和顯示 Toasts/Snackbars

在 AlertDialog 中創建和顯示 Toasts/Snackbars

SMILET 2023-05-24 15:59:09
我有一個 recyclerlistview,它使用從 AlertDialog 收集的輸入填充,AlertDialog 是從浮動操作按鈕生成的。當按下 AlertDialog 中的肯定按鈕并且所有輸入的格式都正確時,SQLite 數據庫會更新,然后在同一個偵聽器中制作并顯示小吃店。如果輸入格式錯誤,則會顯示吐司,但也會關閉我不希望的對話框如果輸入正確,對話框關閉,數據被添加到列表中,但 SnackBar 不顯示這是我的 MainActivity 中的 onClickListener:@Override public void onClick(View view)  {switch ( view.getId() )    {        case R.id.add_item_btn:        View addDialogView = getLayoutInflater().inflate(R.layout.add_dialog, null);        final EditText addItemNameTxt  = addDialogView.findViewById(R.id.add_item_name_txt);        final EditText addItemCountTxt = addDialogView.findViewById(R.id.add_item_count_txt);        // something unimportant left out        new AlertDialog.Builder(this)        .setView(addDialogView)        .setCancelable(true)        .setPositiveButton("Add", new DialogInterface.OnClickListener()        {            @Override            public void onClick(DialogInterface dialog, int i)            {                if ( addItemNameTxt.getText().length() == 0 )                {                    Toast.makeText(MainActivity.this, "Text cannot be empty", Toast.LENGTH_SHORT).show();                    return;                }                String itemName = addItemNameTxt.getText().toString();                String itemCount = addItemCountTxt.getText().toString();                dbHelper.insertTask(itemName, Integer.parseInt(itemCount));                taskAdapter.swapCursor(dbHelper.getTasks());                dialog.dismiss();                Snackbar.make(getLayoutInflater().inflate(R.layout.activity_main, null).findViewById(R.id.rootLayout), String.format("Added \"%s (%s)\" to list", itemName, itemCount), Snackbar.LENGTH_LONG);            }        })        .create().show();        break;    }}
查看完整描述

1 回答

?
江戶川亂折騰

TA貢獻1851條經驗 獲得超5個贊

當將一個按鈕放入自定義布局并使用該按鈕代替 AlertDialog.PositiveButton 時,它會起作用(= 不關閉烘烤 + 成功退出時吃零食)。


            final AlertDialog dialog = new AlertDialog.Builder(this)

            .setView(addDialogView)

            .create();


            addDialogView.findViewById(R.id.add_confirm).setOnClickListener(new View.OnClickListener() {

                @Override

                public void onClick(View view2) {

                    if ( addItemNameTxt.getText().length() == 0 )

                    {

                        Toast.makeText(MainActivity.this, "Text cannot be empty", Toast.LENGTH_SHORT).show();

                        return;

                    }


                    String itemName = addItemNameTxt.getText().toString();

                    String itemCount = addItemCountTxt.getText().toString();


                    dbHelper.insertTask(itemName, Integer.parseInt(itemCount));

                    taskAdapter.swapCursor(dbHelper.getTasks());


                    Snackbar.make(view, String.format("Added \"%s (%s)\" to list", itemName, itemCount), Snackbar.LENGTH_LONG).show();


                    dialog.dismiss();

                }

            });

            dialog.show();


查看完整回答
反對 回復 2023-05-24
  • 1 回答
  • 0 關注
  • 171 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號