博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android 自定义对话框使用静态Handler传递参数
阅读量:5869 次
发布时间:2019-06-19

本文共 2696 字,大约阅读时间需要 8 分钟。

JsdMainDialog.java

package com.jsd.demo;import android.app.Activity;import android.content.Context;import android.graphics.Color;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.TextView;/** * * @author jiangshide * */public class JsdMainDialog extends Activity {  private Context mContext;  private Button mSub; private TextView mResultValue;  public static Handler handler = new Handler();     @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        getViewById();    }       public void getViewById(){     mContext = this;     mSub = (Button) this.findViewById(R.id.sub);     mResultValue = (TextView) this.findViewById(R.id.resultValue);     mResultValue.setText("没有通过Handler处理");     mSub.setOnClickListener(listener);    }       private OnClickListener listener = new OnClickListener() {  @Override  public void onClick(View v) {   switch (v.getId()) {   case R.id.sub:    final String flag = "rqbackvalue";    DialogCustomer  dc = new DialogCustomer(mContext,flag);    dc.show();    handler = new Handler(){     public void handleMessage(Message msg) {      String resultFlag = msg.getData().getString("flags");      if(resultFlag.equalsIgnoreCase(flag)){       mResultValue.setText("这是通过Handler处理过后来显示数据的");       mResultValue.setTextColor(Color.CYAN);       mResultValue.setTextSize(30);      }     };    };    break;   default:    break;   }  } };}

DialogCustomer.java:

package com.jsd.demo;import android.app.Dialog;import android.content.Context;import android.os.Bundle;import android.os.Message;import android.view.View;import android.widget.Button;/** * * @author jiangshide * */public class DialogCustomer extends Dialog { private Context mContext;  private Button ok; String flag;  public DialogCustomer(Context c,String flag) {  super(c);  this.mContext = c;  this.flag = flag; } @Override protected void onCreate(Bundle savedInstanceState) {  super.onCreate(savedInstanceState);  setContentView(R.layout.dialog);  getViewById(); }  public void getViewById(){  ok = (Button) this.findViewById(R.id.dialog_ok);  ok.setOnClickListener(listener); }  private android.view.View.OnClickListener listener = new android.view.View.OnClickListener() {  @Override  public void onClick(View v) {   switch (v.getId()) {   case R.id.dialog_ok:    Message msg = new Message();//获取设置一个信息保存点    msg.what=1;    msg.getData().putString("flags", flag);    JsdMainDialog.handler.sendMessage(msg);//把数据放进LOOPER队列里    dismiss();    break;   }  } };}

dialog.xml:

 

转载地址:http://attnx.baihongyu.com/

你可能感兴趣的文章
SQL面试题
查看>>
Android开发之集成新浪微博SDK
查看>>
企业为什么需要上网行为管理
查看>>
字符串反转的5种方法
查看>>
MPLS *** option C
查看>>
嵌入式Linux C语言(二)——指针
查看>>
Java基础学习总结(8)——super关键字
查看>>
listview当选中某一个item时设置背景色其他的不变
查看>>
Eclipse Indigo 3.7 中文字体偏小解决方案: Consolas 微软雅黑混合字体!
查看>>
Hive 0.11 升级踩坑记——HiveServer2的imperson问题
查看>>
Maven学习总结(七)——eclipse中使用Maven创建Web项目
查看>>
Spring MVC常用注解说明
查看>>
CetOS(RHEL) 5.3下网卡绑定设置指南
查看>>
在Javascript中闭包(Closure)
查看>>
omap_hwmod: rtc: doesn't have mpu register target
查看>>
Linux执行ls,会引起哪些系统调用
查看>>
Linux 32位系统支持4G以上内存
查看>>
记录一些有用的代码技巧,不定期更新
查看>>
打造全民健康平台 加速实现智慧医疗
查看>>
集成商聚焦
查看>>