android Dialog 自定义 继承Dialog基类_机器人创客空间的博客-程序员ITS301

技术标签: AMP  android  android menu user  adaptiveskindetector  

效果图:

步骤:

1、创建对话框的布局文件

复制代码
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content">
      <!-- 标题栏 -->
      <LinearLayout
          android:id="@+id/dlg_priority_titlebar"
          android:orientation="horizontal"
          android:layout_width="fill_parent"
          android:layout_height="wrap_content"
          android:layout_alignParentTop="true">
          <ImageView
            android:src="@drawable/star_gray"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="5dip"/>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="选择任务优先级"
            android:layout_gravity="center_vertical"/>
      </LinearLayout>
      <!-- 任务优先级 -->
      <ListView
          android:id="@+id/dlg_priority_lvw"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:layout_below="@id/dlg_priority_titlebar"
          android:background="@drawable/layout_home_bg">
      </ListView>     
</RelativeLayout>
复制代码

2、因为该布局中使用了自定义的ListView,所以再为ListView创建布局文件

复制代码
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
    <ImageView
          android:id="@+id/list_priority_img"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:layout_gravity="center_vertical"
          android:layout_margin="5dip"        
          />
    <TextView
         android:id="@+id/list_priority_value"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
         android:textSize="28dip"
         android:textColor="@drawable/black"/>
</LinearLayout>
复制代码

3、创建自定义Dialog类PriorityDlg继承自Dialog

复制代码
public class PriorityDlg extends Dialog {
    
    private Context context;
    private ListView dlg_priority_lvw = null;

    public PriorityDlg(Context context) {
        super(context);
        this.context = context;
        // TODO Auto-generated constructor stub
    }
    
    public PriorityDlg(Context context, int theme) {
        super(context, theme);
        this.context = context;
    }
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
      //设置对话框使用的布局文件
        this.setContentView(R.layout.dlg_priority);

        dlg_priority_lvw = (ListView) findViewById(R.id.dlg_priority_lvw);

        // 设置ListView的数据源
        SimpleAdapter adapter = new SimpleAdapter(context, getPriorityList(),
                R.layout.lvw_priority, new String[] { "list_priority_img",
                        "list_priority_value" }, new int[] {
                        R.id.list_priority_img, R.id.list_priority_value });
        dlg_priority_lvw.setAdapter(adapter);

        // 为ListView设置监听器
        dlg_priority_lvw
                .setOnItemClickListener(new AdapterView.OnItemClickListener() {

                    @Override
                    public void onItemClick(AdapterView<?> arg0, View arg1,
                            int arg2, long arg3) {

                    }
                });
    }

    /**
     * 得到ListView数据源
     * 
     * @return
     */
    private List<HashMap<String, Object>> getPriorityList() {
        List<HashMap<String, Object>> priorityList = new ArrayList<HashMap<String, Object>>();
        HashMap<String, Object> map1 = new HashMap<String, Object>();
        map1.put("list_priority_img", R.drawable.priority_not_important);
        map1.put("list_priority_value", context.getResources().getString(
                R.string.dlg_priority_not_important));
        priorityList.add(map1);
        HashMap<String, Object> map2 = new HashMap<String, Object>();
        map2.put("list_priority_img", R.drawable.priority_general);
        map2.put("list_priority_value", context.getResources().getString(
                R.string.dlg_priority_general));
        priorityList.add(map2);
        HashMap<String, Object> map3 = new HashMap<String, Object>();
        map3.put("list_priority_img", R.drawable.priority_important);
        map3.put("list_priority_value", context.getResources().getString(
                R.string.dlg_priority_important));
        priorityList.add(map3);
        HashMap<String, Object> map4 = new HashMap<String, Object>();
        map4.put("list_priority_img", R.drawable.priority_very_important);
        map4.put("list_priority_value", context.getResources().getString(
                R.string.dlg_priority_very_important));
        priorityList.add(map4);

        return priorityList;
    }

}
复制代码

4、创建自定义对话框

PriorityDlg dlg = new PriorityDlg(SimpleTaskActivity.this, R.style.dlg_priority);
return dlg;

这里的R.style.dlg_priority设置了对话框使用的样式文件,只是让对话框去掉标题栏,当然你也可以通过代码来完成这种效果:

复制代码
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <!-- 对话框样式 -->
    <style name="dlg_priority" parent="@android:Theme.Dialog">
        <item name="android:windowNoTitle">true</item>
    </style>
</resources>
复制代码

到这里自定义对话框的创建就结束了,想要什么样子的对话框完全凭你自己的想像。


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/xqw11111/article/details/39973601

智能推荐

初学python100例-案例19 python球高空落地 弹跳N次后高度计算 青少年python编程 少儿编程案例讲解_小兔子编程的博客-程序员ITS301_python反弹高度

目录python计算高度一、题目要求二、输入输出三、解题思路解法1 列表程序分析程序实现解法2 递归程序分析程序实现python计算高度一、题目要求一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?二、输入输出输入样例:无输出样例:总高度:299.609第10次反弹高度:0.098三、解题思路解法1 列表程序分析通过列表将每次的高度以及反弹..

springboot 事务不起作用_FinelyYang的博客-程序员ITS301_springboot 事务不起作用

当@Transactional不起作用如何排查问题。可以按照以下几个步骤逐一确认:1、首先要看数据库本身对应的库、表所设置的引擎是什么。MyIsam不支持事务,如果需要,则必须改为InnnoDB。2、@Transactional所注解的方法是否为public3、@Transactional所注解的方法所在的类,是否已经被注解@Service或@Component等。4、需要调用...

Nginx缓存服务器配置_小魚頭XD的博客-程序员ITS301

1.Web缓存的定义.Web缓存位于内容源Web服务器和客户端之间,当用户访问一个URL时,Web缓存服务器会去后端Web源服务器取回要输出的内容,然后,当下一个请求到来时,如果访问的是相同的URL,Web缓存服务器直接输出内容给客户端,而不是向源服务器再次发送请求.Web缓存降低了内容源Web服务器,数据库的负载,减少了网络延迟,提高了用户访问的响应速度,增强了

《自己动手设计物联网》序 | justjavac_Phodal的博客-程序员ITS301

很久之前读过一本关于芯片技术的书籍,在书的前言中作者讲述了一个故事。大意是这位教授在某次讲座中说到:“以后芯片的数量肯定是现在的几十倍,到时候我们都会享受到各种芯片强大的...

java中uri与url的区别_URL和URI的区别与总结_皮友萍的博客-程序员ITS301

转自:http://www.cnblogs.com/gaojing/archive/2012/02/04/2413626.html这两天在写代码的时候,由于涉及到资源的位置,因此,需要在Java Bean中定义一些字段,用来表示资源的位置,比如:imgUrl,logoUri等等。但是,每次定义的时候,心里都很纠结,是该用imgUrl还是imgUri呢?同样的,另外一个问题:String HttpS...

android java.lang.IllegalStateException: trying to requery an already closed cursor_许佳佳233的博客-程序员ITS301

错误提示: Java.lang.RuntimeException: Unable to resume activity {com.lenovo.leos.memowidget/com.lenovo.leos.notepad.NoteEditor}: java.lang.IllegalStateException: trying to requery an already closed cu...

随便推点

JavaIO详解_越学习越无知的博客-程序员ITS301

IO/NIO/BIO简介无论是Socket的读写还是文件的读写,在Java层面的应用开发或者是linux系统底层开发,都属于输入input和输出output的处理,简称为IO读写。在原理上和处理流程上,都是一致的。区别在于参数的不同。用户程序进行IO的读写,基本上会用到read&amp;write两大系统调用。可能不同操作系统,名称不完全一样,但是功能是一样的。先强调一个基础知识:read系统调用,并不是把数据直接从物理设备,读数据到内存。write系统调用,也不是直接把数据,写入到物理设备。re

微软发布代码智能新基准数据集CodeXGLUE,多角度衡量模型优劣_AI科技大本营的博客-程序员ITS301

来源 |微软研究院AI头条编者按:代码智能(code intelligence)目的是让计算机具备理解和生成代码的能力,并利用编程语言知识和上下文进行推理,支持代码检索、补全、翻译、纠...

ubuntu 16.04 + Qt 5.7.1 无法输入中文的解决方法(转)_weixin_40554881的博客-程序员ITS301_qt5.7.1 fcitx

转自 https://blog.csdn.net/lql0716/article/details/[email protected]_ql http://blog.csdn.net/lql0716安装fcitx-frontend-qt5sudo apt-get install fcitx-frontend-qt5找到以下路径的文件/usr/lib/x86_64-linux-gnu/qt5/p...

分布式全局ID与分布式事务_追风人聊Java的博客-程序员ITS301

目录1. 概述2. 分布式全局ID3. 分布式事务4. 综述5. 个人公众号1. 概述老话说的好:人不可貌相,海水不可斗量。以貌取人是非常不好的,我们要平等的对待每一个人。言归正传,今天我们来聊一下分布式全局 ID 与分布式事务。2. 分布式全局ID2.1 分布式数据库引发的问题在数据库中,每个表都有一个主键(ID),用于作为一条数据的唯一标识。在单体数据库中,大多数时候,我们会采用主键自增的方式生成 ID。但在分布式的数据库中,使用了分库分表后,

AMD Opteron 185 + ATI RDX200 安装雪豹成功。_潘李亮的博客-程序员ITS301

这台机器可以算的上比较折腾。该遇到的问题全遇到过。一开始装的iso版的iDenb 10.5.7 。风火轮闪过后就是CPU Rest。换10.6.1的原版盘。这回好点五国了。 这会水平还太烂。没继续折腾。 最近在我的i5机器和笔记本上折腾成功了可用的黑苹果,于是乎我心里又开始痒痒了。 继续折腾: 这次直接上10.6.3版本。用移动硬盘在已经安装雪豹的机器上,将原版dm

网络风暴简介_石硕页的博客-程序员ITS301_网络风暴

什么是网络风暴? 由于网络拓扑的设计和连接问题,或其他原因,导致广播在网段内大量复制,传播数据帧,导致网络性能下降,甚至网络瘫痪。这样的现象就是网络风暴。怎样抑制网络风暴? 广播域:是在在网端上,所有设备的集合。这些设备可以接听送往每个网段的所有广播。 冲突域:在同一个冲突域中的每一个节点都能收到所有被发送的帧。 冲突域基...

推荐文章

热门文章

相关标签