首页 > 代码库 > Android 自定义对话框使用静态Handler传递参数
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>
Android 自定义对话框使用静态Handler传递参数
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。