14. android dialog——普通对话框原理

先看过效果图:

 

     

图1  输入框默认文字为"这是一个普通对话框。"                           图2     当点击"显示普通对话框"后,将弹出一个对话框

 


            

  图3 点击图2中的对话框的确定按钮, 输入框里输入自己的内容      图4  点击图3中的“显示普通对话框”后弹出对话框

 

第一步:建立res/values/string.xml 

 

第二步:建立res/layout/common_dialog_layout.xml 用来创建输入框和“显示普通对话框”按钮

                   

 第三步: 分析:

关于src/com/mycommondialog/activity/CommonDialogActivity.java

1.首先对“显示普通对话框”按钮进行事件监听,即当点击这个按钮后显示对话框

这里showDialog(int)用来显示对话框的,是系统自带的方法,当点击button产生时间后,调用该方法,首先该方法会判断Activity是否保存了对话框对象

(1)如果未保存则调用onCreateDialog(int),然后再调用onPrepareDialog(int, Dialog)

(2)如果保存了对话框对象,则直接调用onPrepareDialog(int, Dialog),不会再去create,所以有时候当你再输入框里无论如何输入什么内容,对话框的内容都是第一次产生的。

2. Activity 未保存对话框对象,则会创建对话框,即调用onCreateDialog(int)

 

需要new AlertDialog.Builder(this)用来存放Dialog的内容(如图标,标题和信息),this是针对此Activity的。

setPositiveButton表示中间的那个button按钮(一般情况下button有三个按钮,此处只显示中间的那个按钮)

removeDialog(int)是用来清除Activity保存下来的Dialog对象,如果不加removeDialog将会导致无论在对话框里输入什么内容,

弹出来的对话框始终都是第一次保留下来的,这里所以要加上它

3. 关于onPrepareDialog(int, Dialog), 每次点击“显示普通对话框”按钮都会去调用此方法。

dialog.show()其实意义不大,加与不加系统都会调用show的,而且只显示一个对话框,dialog中isShowing()来判断是否该对话框正在显示了,为了验证可以将onPrepareDialog(int, Dialog)改成下面情况(只针对下列改动)

 

或者

 

 

 结果dialog显示一个,而不会有多个对话框出现。

 

关于整个CommonDialogActivity代码如下(src/com/mycommondialog/activity/CommonDialogActivity.java)

 

 

 

最后贴出目录结构

 

 

 

源码下载地址:http://download.csdn.net/down/3217796/jamesliulyc

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
### 回答1: 您可以按照以下步骤在 Android 中实现一个按钮点击后弹出删除对话框: 1. 在您的布局文件中添加一个按钮,例如: ``` <Button android:id="@+id/delete_button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Delete" /> ``` 2. 在您的 Activity 或 Fragment 中找到该按钮并为其设置一个点击事件监听器,例如: ``` Button deleteButton = findViewById(R.id.delete_button); deleteButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // 弹出删除对话框 showDeleteDialog(); } }); ``` 3. 编写一个方法 `showDeleteDialog()` 来显示删除对话框,例如: ``` private void showDeleteDialog() { AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle("Delete Item") .setMessage("Are you sure you want to delete this item?") .setPositiveButton("Delete", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // 在这里执行删除操作 } }) .setNegativeButton("Cancel", null) .show(); } ``` 4. 在对话框的确认按钮的点击事件中添加您需要执行的删除操作。 这样,当用户点击删除按钮后,将会弹出一个删除对话框,询问用户是否确认删除,如果确认删除,则执行您编写的删除操作。如果用户选择取消,则对话框会关闭而不执行任何操作。 ### 回答2: 在Android中点击一个按钮跳出删除对话框,可以按照以下步骤实现: 首先,需要在布局文件中定义一个按钮。可以使用Button或者ImageButton控件,并设置相应的属性,如id和点击事件等。 接下来,在Java代码中找到这个按钮,并为其设置OnClick事件监听器。在点击事件的回调函数中,可以执行一系列操作,包括跳出删除对话框的操作。 在OnClick事件回调函数中,可以使用AlertDialog类来创建一个删除对话框。可以使用AlertDialog.Builder类来构建对话框的内容和样式。使用它的setTitle方法设置对话框的标题,setMessage方法设置对话框的消息内容,以及setPositiveButton和setNegativeButton方法来设置对话框的确认和取消按钮。 代码示例如下: 按钮的布局文件: <Button android:id="@+id/deleteButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="删除" android:onClick="showDeleteDialog" /> Java代码: public class MainActivity extends AppCompatActivity { private Button deleteButton; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); deleteButton = findViewById(R.id.deleteButton); } public void showDeleteDialog(View view) { AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle("删除对话框") .setMessage("确定要删除吗?") .setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // 确定按钮点击事件的处理逻辑 } }) .setNegativeButton("取消", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // 取消按钮点击事件的处理逻辑 } }) .show(); } } 以上就是在Android中点击一个按钮跳出删除对话框的实现方法。根据实际需求,可以自定义对话框的样式和操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值