Android(安卓)覆盖AlertDialog里的按钮事件并显示Toast
16lz
2021-01-25
网上找到的多数是:
控制其不消失,和消失。
// /** 假设对话框已经关闭,欺骗系统,以保持输入窗口**/ try { Field field = this.getClass().getSuperclass().getDeclaredField( "mShowing" ); field.setAccessible( true ); field.set(this, bSucceed); } catch (Exception e){ e.printStackTrace(); }
还可以
用OnClicklistener覆盖DialogInterface.OnClicklistener
//可以使用AlerDialog.Builder,并显示一个Toast。//只要你覆盖按钮的OnClickListener,就可以触发Toast,显示在对话框上。//并决定对话框是否消失 public void showToastOnDialog(final Context context) { AlertDialog.Builder builder = new AlertDialog.Builder(context); builder.setTitle("Dialog title"); builder.setMessage("Dialog message"); builder.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // Do nothing, you will be overriding this anyway } }); builder.setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // You can implement code here, because you wont be // overriding this } }); final AlertDialog dialog = builder.create(); // Make sure you show the dialog first before overriding the // OnClickListener dialog.show(); // Notice that I`m not using DialogInterface.OnClicklistener but the // View.OnClickListener dialog.getButton(Dialog.BUTTON_POSITIVE).setOnClickListener( new View.OnClickListener() { @Override public void onClick(View v) { Toast toast = Toast.makeText(context, "I`m a toast on top of a dialog.", Toast.LENGTH_LONG); toast.show(); // Because you are overriding the OnClicklistener, the // dialog will not auto dismiss after clicking ////otherwise //dialog.dismiss(); dialog.dismiss(); } }); }
http://stackoverflow.com/questions/2356149/how-to-raise-a-toast-on-top-of-a-alertdialog
更多相关文章
- Android(安卓)开发TCP协议时,报错NetworkOnMainThreadException
- 浅析Android(安卓)Dialog中setContentView()方法
- 申请google Map API key
- Activity的“伪对话框”
- WindowManager源码解析(一)
- Android(安卓)短信转换成彩信的消息数量(实例代码)
- Android(安卓)AlertDialog ————普通对话框
- android的正向传值与反向传值
- Android(安卓)显示View在顶级窗口