自定义Dialog并实现接口回调
来源:互联网 发布:伊犁知乎 编辑:程序博客网 时间:2024/06/06 02:27
今天学习自定义一个Dialog控件并试着将它封装了,封装就不说了,我自己都还云里雾里呢,下面是自定义的Dialog控件并实现回调的代码
1 自定义的MyDialog控件
package com.example.zinan.base;import android.app.Dialog;import android.content.Context;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.TextView;/** * Created by zinan on 10/22/15. */public class MyDialog extends Dialog { //创建接口,执行相应的操作 //回调接口其实就是一个传递数据的工具 back为需要传值的方法 public interface OnMyDialogListener{ public void back(String name); } private String name; private OnMyDialogListener onMyDialogListener; TextView textView; EditText editText; Button button; //构造函数 public MyDialog(Context context,String name,OnMyDialogListener onMyDialogListener) { super(context); this.name = name; this.onMyDialogListener = onMyDialogListener;//初始化接口,与设置监听一个道理 } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.layout_mydialog); textView = (TextView)findViewById(R.id.textView); textView.setText("自定義控件信息:" +name); editText = (EditText)findViewById(R.id.editText); button = (Button)findViewById(R.id.button); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //返回自定义控件的值到主Activity,使用回调实现这个功能 onMyDialogListener.back(editText.getText().toString()); MyDialog.this.dismiss(); } }); }}
2 MainActivity
package com.example.zinan.mydialog;import android.support.v7.app.ActionBarActivity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.TextView;import com.example.zinan.base.MyDialog;public class MainActivity extends ActionBarActivity { TextView textView ; Button button; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); textView = (TextView)findViewById(R.id.textView); button = (Button)findViewById(R.id.button); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //声明回调接口的对象,为声明的接口对象赋值 MyDialog myDialog = new MyDialog(MainActivity.this, "我的Dialog", new MyDialog.OnMyDialogListener() { @Override public void back(String name) { textView.setText("成功回調信息:"+name); } }); myDialog.show(); } }); }}
3 效果图
4 布局文件省略昂
5
有什么不对或者有更好的方法欢迎指正交流
0 0
- 自定义Dialog并实现接口回调
- 自定义Dialog接口回调参数
- 【史上最简单】android 自定义dialog中的接口回调
- 自定义Dialog 通过回调函数CallBack接口实现自定义风格
- Android自定义Dialog实现弹出它的Activity背景变暗,并自定义Dialog的大小
- 自定义dialog并设置margin
- Activity实现自定义Dialog
- Activity实现自定义Dialog
- 自定义Dialog实现
- Dialog-自定义实现
- 自定义dialog的实现
- 自定义Dialog实现方式
- 自定义Dialog实现
- Android自定义dialog实现
- android 回调接口学习(自定义Dialog 获取数据数据回调)
- 一个自定义dialog提供确定和取消按钮的回调接口
- Android 自定义Dialog,自定义接口监听事件。
- Dialog的重构+接口回调
- 自定义JSP标签
- python新手
- linux shell脚本登录远程执行命令,交互通过脚本
- Java编程小技巧
- sql语句批量修改字段
- 自定义Dialog并实现接口回调
- Android 软键盘遮挡的四种解决方案
- ORACLE禁用启用触发器
- caffe 中 protobuffer
- NLua Example
- Android控件绘制完成原来是这样的
- HttpWebRequest的GetResponse或GetRequestStream偶尔超时 + 总结各种超时死掉的可能和相应的解决办法
- POJ 2230 Watchcow (欧拉回路模板)
- 怎样只用4行代码编写出一个从字符串到长整形的函数?