Dialog对话框管理工具类
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.DialogInterface.OnKeyListener;
import android.view.Gravity;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.TextView; /**
* Dialog显示的工具类
*
* @author wangfubin
*
*/
public class PromptManager { /**
* 显示一个自定义的Dialog
*
* @param context
* @param mag
* 想要显示的信息
* @param listener
* 回调接口
*/
public static void showDialog(Context context, String mag,
final dialogListener listener) {
final Dialog d = getDialog(context, 0.5f);
TextView tv = (TextView) d.findViewById(R.id.textView1);
tv.setText(mag);
d.setCanceledOnTouchOutside(true);
Button ok = (Button) d.findViewById(R.id.button1);
Button no = (Button) d.findViewById(R.id.button2); ok.setOnClickListener(new OnClickListener() { @Override
public void onClick(View v) {
listener.clickBut(true);
d.dismiss();
}
});
no.setOnClickListener(new OnClickListener() { @Override
public void onClick(View v) {
listener.clickBut(false);
d.dismiss();
}
});
d.show(); } /**
* 获取显示Dialog的实例对象!
*
* @param context
* @param f
* 透明度
* @return
*/
private static Dialog getDialog(Context context, float f) {
final Dialog d = new Dialog(context, R.style.init_game);
Window window = d.getWindow();
WindowManager.LayoutParams lp = window.getAttributes();
lp.dimAmount = f;// 越大越不透明
window.setAttributes(lp);
window.addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
window.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
d.setContentView(R.layout.pop_twobtn);
return d;
} /**
* 按功能键,模拟出来Menu进行显示!
*
* @param context
* @param mag
* 要显示的信息!
* @param listener
* 回调接口
*/
public static void showMenu(Context context, String mag,
final dialogListener listener) {
final Dialog d = getDialog(context, 0.5f);
TextView tv = (TextView) d.findViewById(R.id.textView1);
tv.setText(mag);
Window window = d.getWindow();
window.setGravity(Gravity.BOTTOM);
Button ok = (Button) d.findViewById(R.id.button1);
Button no = (Button) d.findViewById(R.id.button2);
d.setCanceledOnTouchOutside(true);// 设置点击外部可以取消这个Dialog
d.setOnKeyListener(new OnKeyListener() { @Override
public boolean onKey(DialogInterface dialog, int keyCode,
KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_MENU) {
d.dismiss();
}
return false;
}
}); ok.setOnClickListener(new OnClickListener() { @Override
public void onClick(View v) {
listener.clickBut(true);
d.dismiss();
}
});
no.setOnClickListener(new OnClickListener() { @Override
public void onClick(View v) {
/**
* 在按功能键弹出的Dialog上点击取消,其实是什么事情都没做(没写代码) 在baseActivity中,可以看看理解下!
*/
listener.clickBut(false);
d.dismiss();
}
});
d.show(); } /**
* 写一个接口,进行函数的回调,让调用者确定究竟做什么!
*
* @author liuzhao
*/
public interface dialogListener {
void clickBut(boolean isOk);
}
}
Dialog对话框管理工具类的更多相关文章
- android的Log日志打印管理工具类(一)
android的Log日志的打印管理工具类: package com.gzcivil.utils; import android.util.Log; /** * 日志打印管理 * * @author ...
- Android 软件管理工具类Utils
Android 软件管理工具类Utils /** * Created by uilubo on 2015/9/30. * 工具类 */ public class Utils { public stat ...
- 阶段3 2.Spring_07.银行转账案例_4 编写事务管理工具类并分析连接和线程解绑
事务管理工具类 首先需要有connection.并且是当前线程上的connection.声明connectionUtils.提供set方法等着spring来注入 有异常需要放在事务里面 close关闭 ...
- Android—关于自定义对话框的工具类
开发中有很多地方会用到自定义对话框,为了避免不必要的城府代码,在此总结出一个工具类. 弹出对话框的地方很多,但是都大同小异,不同无非就是提示内容或者图片不同,下面这个类是将提示内容和图片放到了自定义函 ...
- Fragment管理工具类
Fragment相关→FragmentUtils.java→Demo addFragment : 新增fragment removeFragment : 移除fragment replaceFragm ...
- android 对话框显示工具类
这个工具类非常简单,但是将显示dialog的方法统一封装,能够大大减少代码重复 package com.ctbri.weather.utils; import android.app.AlertDia ...
- 可以获取JVM信息的一些管理工具类
一些可以获取JVM信息的java工具类 BufferPoolMXBean.class ClassLoadingMXBean.class CompilationMXBean.class GarbageC ...
- 【Android工具类】Activity管理工具类AppManager
转载请注明出处:http://blog.csdn.net/zhaokaiqiang1992 import java.util.Stack; import android.app.Activity; i ...
- 【笔记】cookies管理工具类
package com.ulearning.ulms.util; import java.io.UnsupportedEncodingException; import java.net.URLDec ...
随机推荐
- 快乐编程学ruby
人们常说:不忘初心,方得始终.所以,code除了完成工作任务,在最初还应该是富于乐趣的,正所谓,宅男配女仆,我们来了解了解我们的ruby 萌妹子吧:-). ...
- 对web.config加密,和解密码详细说明
可以使用受保护配置来加密 Web 应用程序配置文件(如 Web.config 文件)中的敏感信息(包括用户名和密码.数据库连接字符串和加密密钥).对配置信息进行加密后,即使攻击者获取了对配置文件的访问 ...
- Oracle Day 08 游标与例外的总结
1.游标的使用(cursor) 基本格式: 定义游标: cursor 游标名 is select语句; 打开游标: open 游标名; loop(循环) fetch ... into ...; ...
- C++编程技巧(长期更新)
1.数组使用 int* p = new int[5](); // 数组新建并全部初始化为0 等价于: int* p; p = new int[5](); int* q = new int[5]; ...
- 分布式缓存HttpRuntime.cache应用到单点登陆中_优化登陆
以前的设计方案,是我们在数据库中放一个表,用作存储验证登陆成功的用户,并且生成用户TOKEN(令牌) 分布式缓存+集群的解决方案图: 相应的代码: DE层中配置文件: receiveTimeout=& ...
- foreach 循环的应用传值
$arr=array(1,5,8,8,9);foreach ($arr as $key => $value) { //这里可以一边改外面$arr的值一边下一步循环 $value=++$value ...
- mysql for windows zip版安装
1.将mysql_5.6.24_winx64.zip 解压到文件夹 2.增加环境变量 3.修改mysql配置文件 将mysql根目录下的my-default.ini 复制一份更名为 my.ini.修改 ...
- 面试题:实现一个方法clone;可以对js五种数据类型进行值复制
//先来方法的代码function clone(obj) { var copy; switch(typeof obj){ case 'number': case 'string': case 'boo ...
- 转:Web网站性能测试分析及调优实例
1.背景 前段时间,性能测试团队经历了一个规模较大的门户网站的性能优化工作,该网站的开发和合作涉及多个组织和部门,而且网站的重要性不言而喻,同时上线时间非常紧迫,关注度也很高,所以对于整个团队的压力也 ...
- C#入门经典中的SelectionFont属性为null
14.6.2.richtextbox控件: private void buttonbold_click(object sender, eventargs e) { ...