• Android 自定义对话框使用静态Handler传递参数


    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:

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout
      xmlns:android="http://schemas.android.com/apk/res/android"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:orientation="vertical"
      >
      <TextView
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:text="当返回时把参数传递过去并执行判断后的操作"
       />
      <Button
       android:id="@+id/dialog_ok"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content" 
       android:text="请点击"
       />
    </LinearLayout>
  • 相关阅读:
    php---观察者模式
    elasticsearch常用查询和注意点
    linux镜像iso格式
    Mysql查询今天、昨天、7天、近30天、本月、上一月数据
    php常用算法
    算法之斐波纳契数列递归和迭代实现
    带你了解session和cookie作用原理区别和用法
    mysql大数据量的分页优化
    常用链接
    自然语言处理
  • 原文地址:https://www.cnblogs.com/zhujiabin/p/4262067.html
Copyright © 2020-2023  润新知