我想显示一个对话框/弹出窗口,向用户显示一条消息“您确定要删除此条目吗?”,其中一个按钮说“删除”。当点击Delete时,它应该删除该条目,否则什么都不删除。

我已经为这些按钮写了一个点击监听器,但我如何调用对话框或弹出窗口及其功能?


当前回答

AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setTitle("This is Title");
    builder.setMessage("This is message for Alert Dialog");
    builder.setPositiveButton("Positive Button", (dialog, which) -> onBackPressed());
    builder.setNegativeButton("Negative Button", (dialog, which) -> dialog.cancel());
    builder.show();

这是一种类似于用一行代码创建Alert对话框的方法。

其他回答

您可以使用AlertDialog创建对话框。构建器

试试这个:

AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setMessage("Are you sure you want to delete this entry?");

        builder.setPositiveButton("Yes, please", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                //perform any action
                Toast.makeText(getApplicationContext(), "Yes clicked", Toast.LENGTH_SHORT).show();
            }
        });

        builder.setNegativeButton("No", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                //perform any action
                Toast.makeText(getApplicationContext(), "No clicked", Toast.LENGTH_SHORT).show();
            }
        });

        //creating alert dialog
        AlertDialog alertDialog = builder.create();
        alertDialog.show();

要改变Alert对话框的正反按钮的颜色,你可以在alertDialog.show()后面写下面两行;

alertDialog.getButton(AlertDialog.BUTTON_POSITIVE).setTextColor(getResources().getColor(R.color.colorPrimary));
alertDialog.getButton(AlertDialog.BUTTON_NEGATIVE).setTextColor(getResources().getColor(R.color.colorPrimaryDark));

你可以创建Activity并扩展AppCompatActivity。然后在清单中加入下一种风格

<activity android:name=".YourCustomDialog"
            android:theme="Theme.AppCompat.Light.Dialog">
</activity>

充气它的按钮和TextViews

然后把这个当做一个对话。

例如,在linearLayout中,我填充下一个参数:

android:layout_width="300dp"
android:layout_height="wrap_content"
     new AlertDialog.Builder(loginregister.this)
            .setTitle("messege")
            .setPositiveButton("ok", null)
            .setMessage( "user name : " + username + "/n" +
                            "password :" + password + "/n"  )
    .show();

使用AlertDialog。建造者:

AlertDialog alertDialog = new AlertDialog.Builder(this)
//set icon 
 .setIcon(android.R.drawable.ic_dialog_alert)
//set title
.setTitle("Are you sure to Exit")
//set message
.setMessage("Exiting will call finish() method")
//set positive button
.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialogInterface, int i) {
   //set what would happen when positive button is clicked    
        finish();
    }
})
//set negative button
.setNegativeButton("No", new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialogInterface, int i) {
   //set what should happen when negative button is clicked
        Toast.makeText(getApplicationContext(),"Nothing Happened",Toast.LENGTH_LONG).show();
    }
})
.show();

您将得到以下输出。

要查看警报对话框教程使用下面的链接。

Android警报对话框教程

现在与Jetpack撰写引入android,你可以简单地创建警报对话框使用下面的代码

if (viewModel.shouldDialogOpen.value) {

        AlertDialog(onDismissRequest = { viewModel.shouldDialogOpen.value = false },
            title = { Text("Delete Entry?") },
            text = {
                Text("Are you sure you want to delete this entry?")
            },
            dismissButton = {
                Button(modifier = Modifier.fillMaxWidth(), onClick = {
                    viewModel.shouldDialogOpen.value = false
                }) {
                    Text(text = "Cancel")
                }
            }, confirmButton = {
                Button(modifier = Modifier.fillMaxWidth(), onClick = {
                    viewModel.shouldDialogOpen.value = false
                    viewModel.beginDelete(recipe)
                }) {
                    Text(text = "Okay")
                }
            })
    }

在viewModel中。shouldDialogOpen, shouldDialogOpen是viewmodel中的一个mutablestate字段,当我们需要显示或解散对话框时,我们会改变它的值。

更多的代码样本Jetpack撰写:- https://androidlearnersite.wordpress.com/2021/08/03/jetpack-compose-1-0-0-sample-codes/