给大家共享一个可以在任何界面调用的Dialog
2012-11-08 16:47
471 查看
UiHelper.java
ShowDialogActivity.java
package com.show.act; import android.app.AlertDialog; import android.app.AlertDialog.Builder; import android.content.Context; import android.content.DialogInterface; import android.content.DialogInterface.OnClickListener; import android.view.ViewGroup.LayoutParams; import android.widget.LinearLayout; import android.widget.TextView; public class UiHelper { /** * 提问框的 Listener * @author Lei */ //因为本类不是activity所以通过继承接口的方法获取到点击的事件 public interface OnClickYesListener { abstract void onClickYes(); } /** * 提问框的 Listener * @author Lei */ public interface OnClickNoListener { abstract void onClickNo(); } public static void showQuestionDialog(Context context, String title, String text, final OnClickYesListener listenerYes, final OnClickNoListener listenerNo) { Builder builder = new AlertDialog.Builder(context); if (!isBlank(text)) { //此方法为dialog写布局 final TextView textView = new TextView(context); textView.setText(text); LinearLayout layout = new LinearLayout(context); layout.setPadding(10, 0, 10, 0); layout.addView(textView, new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT)); builder.setView(layout); } //设置title builder.setTitle(title); //设置确定按钮,固定用法声明一个按钮用这个setPositiveButton builder.setPositiveButton(context.getString(R.string.yes), new OnClickListener() { public void onClick(DialogInterface dialog, int which) { //如果确定被电击 if (listenerYes != null) { listenerYes.onClickYes(); } } }); //设置取消按钮,固定用法声明第二个按钮要用setNegativeButton builder.setNegativeButton(context.getString(R.string.no), new OnClickListener() { public void onClick(DialogInterface dialog, int which) { //如果取消被点击 if (listenerNo != null) { listenerNo.onClickNo(); } } }); //控制这个dialog可不可以按返回键,true为可以,false为不可以 builder.setCancelable(true); //显示dialog builder.create().show(); } /** * 处理字符的方法 * @param str * @return */ public static boolean isBlank(String str) { int strLen; if (str == null || (strLen = str.length()) == 0) { return true; } for (int i = 0; i < strLen; i++) { if ((Character.isWhitespace(str.charAt(i)) == false)) { return false; } } return true; } }
ShowDialogActivity.java
package com.show.act; import com.show.act.UiHelper.OnClickNoListener; import com.show.act.UiHelper.OnClickYesListener; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; public class ShowDialogActivity extends Activity { //声明Button private Button showDialogButton; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); init(); } private void init(){ showDialogButton = (Button)findViewById(R.id.showDialog01); showDialogButton.setOnClickListener(new OnClickListener() { public void onClick(View arg0) { //调用工具类中的dialog //需要传三个值到showQuestionDialog("当前界面","标题","提示内容",new 确定,new 取消 ); UiHelper.showQuestionDialog(ShowDialogActivity.this, "提示", "是否确定", new OnClickYesListener() { public void onClickYes() { // TODO Auto-generated method stub //点击确定干什么 } }, new OnClickNoListener() { public void onClickNo() { // TODO Auto-generated method stub //点击取消干什么 } }); } }); } }
相关文章推荐
- 意外作出了一个javascript的服务器,可以通过js调用并执行任何java(包括 所有java 内核基本库)及C#类库,并最终由 C# 执行你提交的javascript代码! 不敢藏私,特与大家分
- 意外作出了一个javascript的服务器,可以通过js调用并执行任何java(包括 所有java 内核基本库)及C#类库,并最终由 C# 执行你提交的javascript代码! 不敢藏私,特与大家分
- 最近写的一个MySQL操作类(含调用方法),发上来与大家共享
- 这段时间开发了一个共享软件,主要做IP资源管理的(SmartIPView),大家有兴趣可以看看,或给指点指点
- 在一个Android界面弹出一个dialog或者FrameLayout,出现可以点击被覆盖界面的控件,原因是没有消费触摸事件。
- 打印java应用程序的界面.可以指定是这个界面中的任何一个组件.
- 最近设计了一个生成asp代码的程序,同时也可以作为数据库管理查询的软件,发两张图,等完全做好了,给大家共享!
- 为大家共享一个FireFox插件,可以用来访问wiikii百科
- Android中Activity启动模式详解,可以控制程序按home键后进来还会调用一个自己不喜欢的界面
- ios 中调用函数的方法是消息传递,这个和普通的函数调用的区别是,你可以随时对一个对象传递任何消息,而不需要在编译的时候声明这些方法。所以Objective-C可以在runtime的时候
- Android中Activity启动模式详解,可以控制程序按home键后进来还会调用一个自己不喜欢的界面
- 简单封装一个AlertDialog,调用只需要两行代码
- 一个简单的C共享库的创建及Python调用此库的方法
- 给大家推荐一个JAVASCRIPT站点,http://www.tutejs.cn,来这里可以看到很多JAVASCRIPT。
- 设计一个500界面(400可以套用样式)
- 安卓声明一个全局变量,每个activity都可以调用和修改
- 去年这时候辞职一个,不算辞退算是自动劝退2个程序员,不知道他们是否还是在当程序员,大家可以借鉴
- 函数调用可以作为一个函数的实参
- 用silverlight做了一个小的放大缩小的小demo,共享给大家
- 我写一个我做的C#2.0 的get Datatable 的方法,大家做绑定的时候可以用到哦!我爱你们!!!