- 浏览: 75867 次
- 性别:
- 来自: 西安
文章分类
- 全部博客 (101)
- Android (45)
- java中多线程的实现 (1)
- Runnable (2)
- Thread (1)
- TCP网络编程 (1)
- PHP (1)
- java (4)
- JDBC (1)
- oauth登录 (1)
- 中文乱码 (1)
- Ajax (1)
- web (2)
- Mysql (2)
- HTML5 (0)
- HTML5 (1)
- entity not found (1)
- JQuery (2)
- 使用jsp和Servlet实现一个验证码 (1)
- 验证码 (1)
- 异常 (1)
- webService (2)
- not insert异常 (1)
- JAVAmail (1)
- 选中分享 (1)
- 控件 (1)
- 方法 (1)
- listView (1)
- android控件 (1)
- jqueryMobile (1)
- servlet开发中文乱码解决方案 (1)
- servlet开发中文乱码解决方案 (1)
- web文本框初始提示 (1)
- web文本框初始提示 (0)
- xml (1)
- java中的加密技术 (1)
- 互联网 (1)
- mysql数据库 (1)
- java单例模式 (1)
- gson转json (1)
最新评论
重要代码:
Field field = dialog.getClass().getSuperclass().getDeclaredField("mShowing");
field.setAccessible(true);
field.set(dialog, false);// false表示不关闭
field.set(dialog, true);// true表示关闭
使用代码:
btnUpPwd.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
LayoutInflater inflater = LayoutInflater
.from(PersonalCenterActiviity.this);
final View view = inflater.inflate(R.layout.password_dialog,
null);
AlertDialog dialog = new AlertDialog.Builder(
PersonalCenterActiviity.this)
.setTitle("密码修改")
.setIcon(R.drawable.uppwd)
.setView(view)
.setPositiveButton("确定",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
try {
field = dialog
.getClass()
.getSuperclass()
.getDeclaredField(
"mShowing");
field.setAccessible(true);
EditText currentPwd = (EditText) view
.findViewById(R.id.currentPwd);
EditText Pwd = (EditText) view
.findViewById(R.id.pwd);
EditText configPwd = (EditText) view
.findViewById(R.id.configPwd);
if (currentPwd.getText().toString()
.trim().equals("")
|| Pwd.getText().toString()
.trim().equals("")
|| configPwd.getText()
.toString().trim()
.equals("")) {
field.set(dialog, false);// true表示不关闭
Toast.makeText(
PersonalCenterActiviity.this,
"必填项不能为空",
Toast.LENGTH_SHORT)
.show();
} else if (!(currentPwd.getText()
.toString().trim()
.equals(password))) {
field.set(dialog, false);// true表示不关闭
Toast.makeText(
PersonalCenterActiviity.this,
"现有密码错误",
Toast.LENGTH_SHORT)
.show();
} else if (!(Pwd.getText()
.toString().trim()
.equals(configPwd.getText()
.toString().trim()))) {
field.set(dialog, false);// true表示不关闭
Toast.makeText(
PersonalCenterActiviity.this,
"密码与确认密码不同",
Toast.LENGTH_SHORT)
.show();
} else if (password.equals(Pwd
.getText().toString()
.trim())) {
field.set(dialog, false);// true表示不关闭
Toast.makeText(
PersonalCenterActiviity.this,
"新密码与现有密码相同",
Toast.LENGTH_SHORT)
.show();
} else {
listPwd = new ArrayList();
listPwd.add(userId);
listPwd.add(Pwd.getText()
.toString().trim());
myPwdHandler = new MyPwdHandler();
myPwdThread = new MyPwdThread();
myPwdThread.start();
}
} catch (Exception e) {
e.printStackTrace();
}
}
})
.setNegativeButton("取消",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
//DoNothing
try {
if(field == null){
dialog.dismiss();
}else if(!(field == null)){
field.set(dialog, true);
}
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}).create();
dialog.show();
}
});
Field field = dialog.getClass().getSuperclass().getDeclaredField("mShowing");
field.setAccessible(true);
field.set(dialog, false);// false表示不关闭
field.set(dialog, true);// true表示关闭
使用代码:
btnUpPwd.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
LayoutInflater inflater = LayoutInflater
.from(PersonalCenterActiviity.this);
final View view = inflater.inflate(R.layout.password_dialog,
null);
AlertDialog dialog = new AlertDialog.Builder(
PersonalCenterActiviity.this)
.setTitle("密码修改")
.setIcon(R.drawable.uppwd)
.setView(view)
.setPositiveButton("确定",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
try {
field = dialog
.getClass()
.getSuperclass()
.getDeclaredField(
"mShowing");
field.setAccessible(true);
EditText currentPwd = (EditText) view
.findViewById(R.id.currentPwd);
EditText Pwd = (EditText) view
.findViewById(R.id.pwd);
EditText configPwd = (EditText) view
.findViewById(R.id.configPwd);
if (currentPwd.getText().toString()
.trim().equals("")
|| Pwd.getText().toString()
.trim().equals("")
|| configPwd.getText()
.toString().trim()
.equals("")) {
field.set(dialog, false);// true表示不关闭
Toast.makeText(
PersonalCenterActiviity.this,
"必填项不能为空",
Toast.LENGTH_SHORT)
.show();
} else if (!(currentPwd.getText()
.toString().trim()
.equals(password))) {
field.set(dialog, false);// true表示不关闭
Toast.makeText(
PersonalCenterActiviity.this,
"现有密码错误",
Toast.LENGTH_SHORT)
.show();
} else if (!(Pwd.getText()
.toString().trim()
.equals(configPwd.getText()
.toString().trim()))) {
field.set(dialog, false);// true表示不关闭
Toast.makeText(
PersonalCenterActiviity.this,
"密码与确认密码不同",
Toast.LENGTH_SHORT)
.show();
} else if (password.equals(Pwd
.getText().toString()
.trim())) {
field.set(dialog, false);// true表示不关闭
Toast.makeText(
PersonalCenterActiviity.this,
"新密码与现有密码相同",
Toast.LENGTH_SHORT)
.show();
} else {
listPwd = new ArrayList();
listPwd.add(userId);
listPwd.add(Pwd.getText()
.toString().trim());
myPwdHandler = new MyPwdHandler();
myPwdThread = new MyPwdThread();
myPwdThread.start();
}
} catch (Exception e) {
e.printStackTrace();
}
}
})
.setNegativeButton("取消",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
//DoNothing
try {
if(field == null){
dialog.dismiss();
}else if(!(field == null)){
field.set(dialog, true);
}
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}).create();
dialog.show();
}
});
发表评论
-
Android自动化测试--Espresso框架使用
2016-11-01 10:02 759转载: Android自动化测试--Espresso框架 ... -
浅谈android中仅仅使用一个TextView实现高仿京东,淘宝各种倒计时
2016-11-01 09:54 1090转载:http://blog.csdn.net/u0130 ... -
利用apktool等工具发编译android apk
2016-10-25 09:15 748这个是我的csdn中的一篇关于android app反编译的文 ... -
Error:Execution failed for task ':app:mergeDebugResources'. > Some file crunchin
2016-10-08 10:30 1036向studio中导入微信支付Demo的时候报错了,具体如图: ... -
android studio实用快捷键收集
2016-09-30 17:51 492本人用android studio刚开始,做一下笔记,只适用于 ... -
android中事件分发机制
2016-09-22 11:52 587转载自:http://www.cnblogs.com/linj ... -
一个对sharedpreferences 数据进行加密的开源库
2016-09-18 14:30 655http://www.cnblogs.com/zhaoyanj ... -
LinerLayout滑动后停在顶部
2016-09-18 12:08 685转载自:http://blog.csdn.net/ff2008 ... -
android studio入门知识
2016-09-06 18:11 713http://blog.csdn.net/jdsjlzx/ar ... -
android图片加载OOM解决方案
2016-08-30 15:17 489转载自:http://www.apkbus.com/blog- ... -
android oom连带问题,以及tag错位问题结局方案
2016-08-30 13:48 676http://www.apkbus.com/blog-8430 ... -
android新手指导
2016-08-30 11:59 403http://www.apkbus.com/forum.php ... -
android app自动化测试
2016-07-12 15:51 520android sdk的lib目录下有个monkeyrunne ... -
利用BadgeView实现数字提醒效果
2016-07-06 16:38 975BadgeView是一个第三方开源库, github地址:ht ... -
android端图片缓存实现,特别适用于listview来回滚动
2016-07-02 10:40 698转载自: http://www.open-open.com/l ... -
android文件存储文本
2016-05-17 17:26 504/** * 写入文本 */ private void ... -
android listView的BaseAdapter的抽取
2016-05-12 11:52 657/** * BaseAdapter的抽取 * @autho ... -
android全局异常捕获并发送异常到邮箱
2016-05-12 11:41 1119public class AppException exten ... -
android第三方框架xutils的使用
2016-05-12 11:35 848这里写一些网络请求的相关 //初始化相关参数和对象 publi ... -
android端版本更新
2016-05-12 11:26 736整个思路,先判断服务端当前版本是不是高于本地版本,高的话可以选 ...
相关推荐
在调用dialog的时候得到dialog对象,加入资料中代码,可以控制dialog的按钮在什么时候消失,而不是系统默认的点击消失
然而,在某些特定场景下,我们可能希望在用户触发某个操作(如输入验证失败)时保持Dialog不关闭,以便用户可以修正错误。这就是描述中提到的问题——如何控制Dialog在点击按钮后不关闭。 要实现这一功能,我们可以...
在Android开发中,自定义对话框(Dialog)是一种常见的需求,它可以提供更加个性化的用户体验。本文将详细讲解如何实现一个自定义的右上角带有“X”文字按钮的Dialog,这个按钮可以用来关闭Dialog。 首先,我们需要...
为了在点击外部或者按钮时关闭Dialog,我们需要重写`onDismiss()`方法: ```java @Override public void onDismiss(DialogInterface dialog) { super.onDismiss(dialog); // 可以在这里添加额外的逻辑,如更新UI...
例如,当Dialog或PopupWindow显示和消失时,可以添加平滑的过渡动画,使得交互更加自然。 总结来说,Android自定义显示内容的Dialog可以通过继承Dialog或PopupWindow实现。Dialog提供了基本的对话框功能,而...
例如,当用户点击相机按钮时,我们启动相机Intent: ```java Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); startActivityForResult(cameraIntent, CAMERA_REQUEST_CODE); ``` 在`...
此外,我们还需要在Dialog的按钮(如“确定”、“取消”)上添加相应的点击事件处理。例如,当用户点击“确定”时,我们可以获取ListView中所有被选中的项,并执行相应的业务逻辑。 在实际项目中,文件名为`...
5. 监听用户操作:为Dialog的按钮或其他交互元素设置监听器,处理用户的点击事件。 在压缩包中的`AndroidDialogDemo-master`项目中,我们可以看到具体的示例代码,包括如何初始化Dialog,设置内容,以及如何在不同...
4. **添加交互逻辑**:为Dialog上的按钮或其他元素设置点击事件监听器,实现用户交互功能。 5. **展示Dialog**:最后,在需要弹出Dialog的地方调用`show()`方法。 在本项目中的`selfDialog`文件可能是包含上述步骤...
在Android开发中 我们经常会需要在Android界面上弹出一些对话框 比如询问用户或者让用户选择 关于Android Dialog的使用方法 已经有很多blog做出了详细的介绍(比如博客:7种形式的Android Dialog使用举例) 但是只是...
本资源“安卓Dialog对话框相关-androiddialog总结Dialog整理.rar”提供了关于Android Dialog的总结和示例,虽然不能确保所有代码都能直接运行,但它可以作为学习和参考的宝贵资料。 首先,我们来看Dialog的基本用法...
在Android中,我们可以为按钮设置点击监听器,当用户点击时改变其背景颜色。 6. **显示和关闭**:创建一个自定义的Dialog类,继承自`android.app.Dialog`,并在其中实现显示和关闭Dialog的逻辑。记得在适当的位置...
很多这种类型的dialog,界面千变万化,于是我建立了一个通用自定义dialog,可以实现以下功能: 1、界面的自定义,全部自己用xml定义界面; 2、不管是在Fragment,还是Activity都...3、在dialog按钮点击后,自动消失。
本文将深入讲解如何在Android的Dialog中生成并显示二维码,以及如何处理点击Dialog外部以关闭Dialog的事件。 首先,我们需要了解二维码生成的基本原理。二维码(Quick Response Code)是一种二维条形码,能够存储比...
在Android开发中,Dialog是一种非常常见的用户交互组件,它用于在主界面之上显示临时的通知或进行简单的用户交互。本文将深入探讨如何在Android中自定义Dialog以及如何为Dialog添加进出动画,以提升用户体验。 首先...
在Android开发中,自定义对话框(Dialog)是一种常见的用户界面设计手法,它允许开发者创建具有特定功能或信息展示的半透明窗口,增强用户体验。本教程将深入探讨如何在Android应用中实现一个自定义签名Dialog。 ...
这里,我们找到了关闭按钮的ImageView,并为其设置了一个点击监听器,当点击该按钮时,会调用`dismiss()`方法关闭Dialog。 总结来说,创建一个自定义右上角带叉号的Dialog,你需要: 1. 设计一个包含关闭按钮的...
当系统默认的Dialog样式不能满足应用的特定需求时,开发者常常会选择自定义Dialog来实现更个性化的界面和交互体验。本示例"Android:自定义Dialog-Demo"就是针对这种情况提供的一种解决方案。 首先,我们来看自定义...
在标题"Android dialog单选、多选弹窗"中,我们主要关注的是两种类型的Dialog:单选对话框(Radio Button Dialog)和多选对话框(Checkbox Dialog),以及可能涉及到的PopWindow窗口。 1. **单选对话框**: 单选...
在Android开发中,自定义对话框(Dialog)是提升用户体验和增强应用个性化的重要手段。一个精美的自定义Dialog不仅能够提供必要的信息,还能通过各种显示动画效果吸引用户的注意力,增加应用的趣味性和专业性。本篇...