_________________________________________________________________________________
⁃ public class CustomDialogMsgOneBtn
⁃ {
⁃
⁃ private static CustomDialogMsgOneBtn _instance;
⁃
⁃ private UIHandler uiHandler;
⁃ public Context _context;
⁃ public Dialog _dialog;
⁃ private Object synchObject = new Object();
⁃
⁃ private TextView _tvDialogTitle;
⁃ private TextView _tvDialogMessage;
⁃ private String _dialogTitle;
⁃ private String _dialogMessage;
⁃ private Button _btnDialogOk;
⁃ private String _btnTextOk;
⁃
⁃ private CustomDialogMsgOneBtn()
⁃ {
⁃
⁃ }
⁃ public static CustomDialogMsgOneBtn getInstance()
⁃ {
⁃ if( _instance == null )
⁃ {
⁃ _instance = new CustomDialogMsgOneBtn();
⁃ }
⁃ return _instance;
⁃ }
⁃
⁃ public void setTitleAndMessage( String title, String msg )
⁃ {
⁃ this._dialogTitle = title;
⁃ this._dialogMessage = msg;
⁃ }
⁃
⁃ public void initDialog( Context c )
⁃ {
⁃ _context = c;
⁃ }
⁃
⁃ public void setButtonTextOk( String sText )
⁃ {
⁃ this._btnTextOk = sText;
⁃ }
⁃
⁃ private void constructUiThread()
⁃ {
⁃ HandlerThread uiThread = new HandlerThread( "UIHandler" );
⁃ uiThread.start();
⁃ uiHandler = new UIHandler( uiThread.getLooper() );
⁃ }
⁃
⁃ public void show()
⁃ {
⁃ try
⁃ {
⁃ constructUiThread();
⁃
⁃ uiHandler.sendEmptyMessage( 0 );
⁃
⁃ synchronized( synchObject )
⁃ {
⁃ try
⁃ {
⁃ synchObject.wait();
⁃ }
⁃ catch( InterruptedException e )
⁃ {
⁃ e.printStackTrace();
⁃ }
⁃ }
⁃
⁃ }
⁃ catch( Exception e )
⁃ {
⁃ e.printStackTrace();
⁃ }
⁃
⁃ }
⁃
⁃ public void dismissDialog()
⁃ {
⁃ _dialog.dismiss();
⁃ }
⁃
⁃ private final class UIHandler extends Handler
⁃ {
⁃
⁃ public View.OnClickListener btnListener = new View.OnClickListener()
⁃ {
⁃
⁃ @Override
⁃ public void onClick( View v )
⁃ {
⁃
⁃ int id = v.getId();
⁃ if( id == R.id.btnDialogOk )
⁃ {
⁃ Log.d( "dialog Ok", "Ok" );
⁃
⁃ notifySync();
⁃ }
⁃
⁃ }
⁃ };
⁃
⁃ public DialogInterface.OnDismissListener dialogOnDismissListener = new DialogInterface.OnDismissListener()
⁃ {
⁃
⁃ @Override
⁃ public void onDismiss( DialogInterface dialog )
⁃ {
⁃
⁃ notifySync();
⁃ Log.d( "dialog being dismissed", "dismiss ang dialog" );
⁃ }
⁃ };
⁃
⁃ public UIHandler( Looper looper )
⁃ {
⁃ super( looper );
⁃ }
⁃
⁃ @Override
⁃ public void handleMessage( Message msg )
⁃ {
⁃ _dialog = new Dialog( _context );
⁃ _dialog.requestWindowFeature( Window.FEATURE_NO_TITLE );
⁃ _dialog.setCanceledOnTouchOutside( true );
⁃ _dialog.setContentView( R.layout.dialog_message_one_button );
⁃ _dialog.setOnDismissListener( dialogOnDismissListener );
⁃
⁃ _tvDialogTitle = (TextView)_dialog.findViewById( R.id.txtDialogTitle );
⁃ _tvDialogMessage = (TextView)_dialog.findViewById( R.id.txtDialogMsg );
⁃ _btnDialogOk = (Button)_dialog.findViewById( R.id.btnDialogOk );
⁃
⁃ _tvDialogTitle.setText( _dialogTitle );
⁃ _tvDialogMessage.setText( _dialogMessage );
⁃ _btnDialogOk.setText( _btnTextOk );
⁃
⁃ _btnDialogOk.setOnClickListener( btnListener );
⁃
⁃ _dialog.show();
⁃
⁃ }
⁃
⁃ private void notifySync()
⁃ {
⁃ synchronized( synchObject )
⁃ {
⁃ _dialog.dismiss();
⁃ synchObject.notifyAll();
⁃ }
⁃ }
⁃
⁃ }// end UIHanlder class
⁃
⁃ } //end Class
CustomDialogMsgTwoBtn.getInstance().initDialog(this);
CustomDialogMsgTwoBtn.getInstance().setLeftAndRightButtonText( "cancel", "accept" );
CustomDialogMsgTwoBtn.getInstance().setTitleAndMessage( "Custom Dialog", "test msg" );
CustomDialogMsgTwoBtn.getInstance().show();
不要那样做!一旦你停止了UI线程,Android系统就会向用户显示一个对话框来尝试关闭!!
使用托管对话框,而不是http://developer.android.com/guide/topics/ui/dialogs.html
本文向大家介绍c# 单例模式的实现,包括了c# 单例模式的实现的使用技巧和注意事项,需要的朋友参考一下 记一下学习单例模式的笔记: 单例就是要保证该类仅有一个实例。实现完全封闭的单例(外部不能new)其实就要两点要求: 全局访问:需要一个该类型的全局静态变量,每次获取实例时都要判断它是否null,不存在new,存在通过一个方法直接返回该值获取实例来保证对象唯一; 实例化控制:new实例不能
本文向大家介绍c#设计模式之单例模式的实现方式,包括了c#设计模式之单例模式的实现方式的使用技巧和注意事项,需要的朋友参考一下 场景描述 单例模式对于我们来说一点也不模式,是一个常见的名称,单例模式在程序中的实际效果就是:确保一个程序中只有一个实例,并提供一个全局访问点,节省系统资源 单例模式无论是在实际开发中还是在软件应用中比较常见,比如,windows系统的任务管理器、IIS的HttpAppl
本文向大家介绍Android 单例模式 Singleton 简单实例设计模式解析,包括了Android 单例模式 Singleton 简单实例设计模式解析的使用技巧和注意事项,需要的朋友参考一下 单例模式 Singleton 简单实例设计模式解析 前言 今天我来全面总结一下Android开发中最常用的设计模式 - 单例模式。 关于设计模式的介绍,可以看下我之前写的:1分钟全面了解“设计模式” 目录
我正在浏览单个实例的文档,并尝试了几个示例。在我的一个示例中,我有三个活动:A- 场景: 通过A和B导航到C后(即A- 问题 当从活动A按下后退按钮时,为什么活动B出现在前台? 其他场景: 类似地,从活动C如果用户按下设备主页按钮,并回来的应用程序长按主页,C停留在前台。但是后退按钮按流程需要C-
原始问题:程序读取旧配置文件(.ini)的输入 小节:漂移 田块:亩 价值:5
本文向大家介绍BootStrap+Angularjs+NgDialog实现模式对话框,包括了BootStrap+Angularjs+NgDialog实现模式对话框的使用技巧和注意事项,需要的朋友参考一下 本篇文章主要介绍了"angularjs+bootstrap+ngDialog实现模式对话框",对于Javascript教程感兴趣的同学可以参考一下: 在完成一个后台管理系统时,需要用表显示注册用户