Android带参数回传的自定义dialog

1.首先,建立一个属于dialog的style样式:

    <style name="MessageListDialog" parent="@android:style/Theme.Dialog"><item name="android:windowIsFloating">true</item><item name="android:windowFullscreen">true</item><item name="android:windowIsTranslucent">false</item><item name="android:windowBackground">@android:color/transparent</item><!-- 无标题 --><item name="android:windowNoTitle">true</item><!-- 背景透明 --><item name="android:backgroundDimEnabled">true</item><item name="android:textColor">@color/black</item></style>

样式大家可以看着酌量增减。
2.以下为自定义dialog的精华,大家品味以下。0.0

import android.app.Dialog;
import android.content.Context;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import com.fujitsu.R;
import com.fujitsu.adapter.Dialog_ChooseUserAdapter;import java.util.ArrayList;
import java.util.HashMap;/*** Created by Administrator on 2016/9/29.*/
public class Dialog_ChooseUser extends Dialog implements AdapterView.OnItemClickListener{private Context context;private ListView listview;private ArrayList<HashMap<String, String>> list = new ArrayList<HashMap<String, String>>();private OnTextInputFinishedListener mListener; //接口@Overridepublic void onItemClick(AdapterView<?> parent, View view, int position, long id) {mListener.editInputFinished(list.get(position));dismiss();}public interface OnTextInputFinishedListener{void editInputFinished(HashMap<String, String> user);}public Dialog_ChooseUser(Context context, int theme, OnTextInputFinishedListener mListener) {super(context, theme);this.context = context;this.mListener = mListener;this.setCancelable(true);initView();initData();}private void initData() {HashMap<String, String> map = new HashMap<>();map.put("name","kate");map.put("password","1");HashMap<String, String> map1 = new HashMap<>();map1.put("name","john");map1.put("password","1");HashMap<String, String> map2 = new HashMap<>();map2.put("name","ming");map2.put("password","1");HashMap<String, String> map3 = new HashMap<>();map3.put("name","hirorin");map3.put("password","1");list.add(map);list.add(map1);list.add(map2);list.add(map3);Dialog_ChooseUserAdapter adapter = new Dialog_ChooseUserAdapter(context, list);listview.setAdapter(adapter);listview.setOnItemClickListener(this);}private void initView() {setContentView(R.layout.dialog_chooseuser);listview = (ListView) findViewById(R.id.dialog_chooseuser_listview);}}

里面的Dialog_ChooseUserAdapter相信不用给大家介绍了吧?不知道的可以另行搜索BaseAdapter的使用!欧耶!
其中的精华为:

private OnTextInputFinishedListener mListener; //接口

@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {mListener.editInputFinished(list.get(position));
    dismiss();   //当点击以后关闭弹出框
}public interface OnTextInputFinishedListener{void editInputFinished(HashMap<String, String> user);
}

3.再献上dialog中布局的代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical" android:layout_width="match_parent"android:layout_height="match_parent"><LinearLayoutandroid:layout_width="400dp"android:layout_height="300dp"android:orientation="vertical"android:background="@drawable/shap_dialog_white"android:gravity="center"><TextViewandroid:layout_width="match_parent"android:layout_height="50dp"android:text="选择用户"android:textSize="25sp"android:gravity="center"android:textColor="@color/black"/><ListViewandroid:id="@+id/dialog_chooseuser_listview"android:layout_width="match_parent"android:layout_height="match_parent"android:layout_gravity="center"android:listSelector="#00000000"></ListView></LinearLayout>
</LinearLayout>

4.当要调用的时候,直接来这一句:

                Dialog_ChooseUser dialog = new Dialog_ChooseUser(LoginActivity.this,R.style.MessageListDialog, new Dialog_ChooseUser.OnTextInputFinishedListener() {@Overridepublic void editInputFinished(HashMap<String, String> user) {etLoginName.setText(user.get("name"));etPassword.setText(user.get("password"));}});// 创建Dialog并设置样式主题dialog.show();dialog.getWindow().setGravity(Gravity.CENTER);

注意:顺序是这样的!不然容易出来一个顺序错乱异常!

       dialog.show();dialog.getWindow().setGravity(Gravity.CENTER);

其中

R.style.MessageListDialog

就是你前面定义的style!

结束,谢谢大家观看,打赏个或者点个赞呗亲!

Android带参数回传的自定义dialog相关推荐

  1. android 带箭头的按钮,用Dialog创建带箭头的对话框

    很多应用中,在点击Button后,会弹出一个带箭头的对话框,指向这个Button.网上查了,很多人都说用PopupWindow可以实现,我对PopupWindow不熟,于是试着用Dialog实现.(需 ...

  2. 自定义Dialog 实现 仿网易云音乐的隐私条款声明弹框

    [需求描述] 需要自己指定弹框的标题,内容,确定按钮,取消按钮 需要给弹框内容的部分文字添加富文本样式和超链接/跳转到指定的Activity [代码实现] 1. 布局 整体使用垂直的线性布局,将标题, ...

  3. android 自定义带输入框的dialog,Android 基本Dialog和自定义Dialog

    Android 基本Dialog和自定义Dialog Dialog类是对话框的基类,但你应该避免直接实例化Dialog ,可以使用子类 1.AlertDialog 此对话框可以显示标题,最多三个按钮, ...

  4. android 获取对话框对象,Android 基本Dialog和自定义Dialog

    Android 基本Dialog和自定义Dialog Dialog类是对话框的基类,但你应该避免直接实例化Dialog ,可以使用子类 1.AlertDialog 此对话框可以显示标题,最多三个按钮, ...

  5. Android自定义Dialog+圆角处理

    目录 一.自定义Dialog 二.Dialog添加圆角 一.自定义Dialog 自定义Dialog实现过程 本文的自定义dialog是在fragment中实现的,在Activity里面应该大同小异了. ...

  6. android如何自定义dialog,安卓dialog的使用+如何自定义dialog

    什么叫dialog 简单来说就是一句话: 弹出一个窗口,提示用户自己去选择,去提示,去分类的一些内容. 安卓自带的dialog有三种: - AlertDialog--普通的提示对话框 - Progre ...

  7. android 自定义dialog 定时关闭,Android编程实现自定义Dialog的大小自动控制方法示例...

    本文实例讲述了Android编程实现自定义Dialog的大小自动控制方法.分享给大家供大家参考,具体如下: Android应用开发中,无论是出于功能还是增加用户体验,弹出对话框(Dialog)进行一些 ...

  8. Android开发之自定义dialog的实现(源代码分享)

    使用系统自带的dialog如果不能满足我们日常开发的需求,那就得自己构建custom dialog,特别是对于一个app来说,统一的样式风格会给人一种舒服的感觉,所以dialog的样式 .色调一般都要 ...

  9. Android动画+自定义Dialog实现闲鱼发布页面动态效果

    先来看一下效果图: 一:新建一个项目DialogView 在layout文件夹下创建一个anmi的文件夹用于存放动画资源 1.首先创建进入Dialog和关闭Dialog时候的主题背景动画 进入Dial ...

最新文章

  1. 面试高频!JVM必备教程~
  2. Java pinyin4j 汉字转拼音包括——多音字
  3. 最牛逼的性能监控系统!集强大功能于一身
  4. Java关键字和保留字
  5. Fiddler 抓包高级进阶篇-天罗地网抓包大法
  6. python代码该怎么简化_Python开发简化代码的六大技巧
  7. springboot banner在线生成_SpringBoot系列教程10--小花样之SpringBoot配置自定义Banner
  8. 会计电算化的重要物质基础计算机和,湖北工业大学工程技术学院会计电算化管理办法...
  9. 【算法分析与设计】最大连续子序列和问题
  10. Centos7使用Docker创建Oracle11g
  11. Git学习教程(二):配置和初始化
  12. java在线支付---06,07,08_在线支付_编写将数据提交给易宝支付的JSP页面,集成和测试向易宝发送支付请求,实现浏览器自动向易宝发送支付请求
  13. 为什么 React Native 连遭 Airbnb、Udacity 抛弃?
  14. 融资1个亿,5000万给魔窗,凭啥?
  15. Android 第三方 ROM
  16. Lazada(来赞达):就三个步骤!搞定Lazada店铺装修
  17. 华为matex搭载鸿蒙系统,华为MateX推迟至9月上市,或预装鸿蒙系统
  18. TypeScript技术知识整理
  19. mysql实现级联操作(级联更新、级联删除)
  20. Oracle Grant详解

热门文章

  1. 大数据里常见的几种压缩格式压缩
  2. SpringBoot 整合163邮箱 阿里云25端口问题
  3. 基于射频指纹的LoRa网络安全方案研究
  4. 3.2 - E 学生查询
  5. Redis主从数据不一致及读取过期数据问题的解决方案
  6. FZU Problem 1077 铁皮容器
  7. metaq 主要配置介绍 ——————学习笔记
  8. 如何重新排列数组使得数组左边为奇数,右边为偶数
  9. 将微信语音消息转换为 mp3
  10. 开展视频营销的流程和策略