【Android基础篇】AlertDialog自定义setView方法的控件响应方法

2023-11-07

Android使用AlertDialog弹出对话框时,如果需要自定义对话框界面,就需要用到setView来设置界面,此时,界面上一般都会有需响应或需记录结果的控件,这就需要查找控件了。下面就是一个在自定义对话框中查找控件并进行响应的实例:

LayoutInflater layoutInflater = LayoutInflater.from(mContext);
View newPlanDialog = layoutInflater.inflate(R.layout.new_plan_dialog, 
                        (ViewGroup)findViewById(R.id.LinearLayout_newplan));

AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this)
    .setTitle("添加新计划")
    .setIcon(R.drawable.ic_launcher)
    .setView(newPlanDialog)
;

builder.setPositiveButton("确定", new android.content.DialogInterface.OnClickListener(){

    @Override
    public void onClick(DialogInterface dialog, int which) {
        // TODO Auto-generated method stub
        //Toast.makeText(getApplicationContext(), 
        start.toString()+":"+end.toString(), 2000).show();
        String content = text.getText().toString();
        Log.d("Content",content);
        Integer.toString(start.getCurrentHour())+
        ":"+Integer.toString(start.getCurrentMinute()));

        Log.d("EndTime",
        Integer.toString(end.getCurrentHour())+
        ":"+Integer.toString(end.getCurrentMinute()));
        dialog.dismiss();
    }

});
builder.setNegativeButton("取消", new android.content.DialogInterface.OnClickListener(){
    @Override
    public void onClick(DialogInterface dialog, int which) {
        // TODO Auto-generated method stub
        dialog.dismiss();           
    }               
});
AlertDialog ad = builder.create();  //创建对话框
ad.show();  //需先显示,然后才能查找控件
start =(TimePicker)ad.findViewById(R.id.timepicker_start);
end = (TimePicker)ad.findViewById(R.id.timepicker_end);
text = (EditText)ad.findViewById(R.id.editText_content);

界面的xml文件就是两个时间控件和一个编辑框。
需注意,必须show对话框,然后才能查找控件。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【Android基础篇】AlertDialog自定义setView方法的控件响应方法 的相关文章

随机推荐

  • ThreadLocal - ThreadlMap与弱引用

    ThreadLocal源码 在看ThreadLocal源码的时候 其中嵌套类ThreadLocalMap中的Entry继承了WeakReferenc static class ThreadLocalMap static class Entr
  • C++ string字符串修改和替换方法详解

    字符串内容的变化包括修改和替换两种 本节将分别讲解字符串内容的修改和字符串内容的替换 字符串内容的修改 可以通过使用多个函数修改字符串的值 例如 assign operator erase 交换 swap 插入 insert 等 另外 还可
  • 使用Guava RateLimiter限流以及源码解析

    前言 在开发高并发系统时有三把利器用来保护系统 缓存 降级和限流 缓存 缓存的目的是提升系统访问速度和增大系统处理容量 降级 降级是当服务出现问题或者影响到核心流程时 需要暂时屏蔽掉 待高峰或者问题解决后再打开 限流 限流的目的是通过对并发
  • win10 graphedit存储的路径

    如果安装郭windows SDK的话 可能的存储位置为C Program Files x86 Windows Kits 10 bin x86 C Program Files x86 Windows Kits 10 bin x64
  • 【C语言学习教程---2】C语言的数据类型

    事物的难度远远低于对事物的恐惧 上一篇文章已经介绍说明了Visual C 的安装和使用 链接如下 C语言学习教程 1 VC 6 0的安装和创建简单C语言工程文件教程 文末有程序代码免费的获取方式 本篇文章开始正式讲解和介绍C语言的知识 在学
  • 安装破解版的edraw max

    一 简介 project是一款好用的项目管理工具 二 安装过程 1 下载安装包 安装软件 安装后先不要运行 https pan baidu com share init surl gKfohSW8XEn 9cYLwnJwdQ h3um 2
  • git:git clone -b提示remote branch master not found in upstream origin

    问题 如标题 解决办法 检查下分支名是否写错了 git创建时有时候不一定有master分支 而是main分支 需要注意
  • Selenium webdriver的无头模式(headless)可能导致cookies内容缺失,以及解决措施

    无头模式 headless 是selenium的webdriver浏览器驱动的一项功能 允许浏览器不出现而仍可访问网页 并与之交互 这对于运行自动化测试或网络抓包大有用处 因为运行速度更快 占用资源更少 但是笔者发现在无头模式下运行时 浏览
  • 高性能mysql一.mysql系统结构和概念

    文章目录 1 1Mysql逻辑架构 1 1 1连接管理和安全性 1 1 2优化与执行 1 2并发控制 1 2 1读写锁 1 2 2锁粒度 1 3事务 1 3 1隔离级别 1 3 2死锁 1 3 3事务日志 1 3 4mysql中的事务 1
  • uni-app 下拉条件筛选菜单组件sl-filter app端不能正常显示

    1 使用uniapp的sl filter组件时 在浏览器中可以正常看到下拉筛选组件如下图1 2 在app中无法看到条件筛选控件 如下图2 3 找到sl filter中sl filter vue中的 created onReady 方法 将
  • MSP430F5529学习笔记(5)——按键切换灯的亮灭

    MSP430F5529学习笔记 4 按键点灯 目录 官方示例代码 内容解析 BIT0的含义 解析 按键消抖 增加的宏定义 问题 解决办法 官方示例代码 官方视频教程里面的代码如下 我做了些许的调整 但是是一样的 只需要看while 1 中的
  • 机器学习概论 聚类算法实现(实验四)

    一 实验目的 1 熟悉使用numpy模块生成二维正态分布 2 掌握kmeans聚类的代码实现 3 熟悉numpy的使用 4 熟悉matplotlib的使用 二 实验设备 计算机 CPU四核i7 6700处理器 内存8G SATA硬盘2TB硬
  • fedora下一些与网络配置相关的文件和命令

    http thethe blog 51cto com 498901 145966 1 如果您在命令行下启动网络服务 应该是 root localhost beinan etc init d network start root localh
  • latex之使用texstudio 编辑算法伪代码

    latex安装一定要记得设置环境变量 另外texstudio配置变量设置请看latex安装和texstudio latex语法没怎么学 随便找个模板跟着玩的 入门案例如下贴出来的 方便以后查找 使用 首先推荐一下网址 https priva
  • 半导体(芯片制造)材料概述

    引用 1 https zhuanlan zhihu com p 371609556 2 https zhuanlan zhihu com p 374110990 3 https www eet china com mp a91416 htm
  • Opencv时间计算

    OpenCV中的时间计算 OpenCV提供了两个函数 cv getTickCount 和cv getTickFrequency 其中 getTickCount 表示的是从某一事件后 比如开机后 系统时钟的嘀嗒数 getTickFrequen
  • element-UI

    常用组件 vue admin里封装的组件 插件等 统一注册在framework vab index js里 main js再导入framework vab 就可以全局使用framework vab里的内容了 如果想全局使用自己封装的组件 可
  • 2. Unity操作基础知识

    1 创建新项目 双击打开 unity hub管理器 点击左侧栏中的 项目 选项卡 在右上角点击 新项目 按钮 进入项目创建页面 在项目创建页面中 选择合适的模板 并设置项目名称 选择项目保存位置 取消勾选同意版本管理和政策条款 最后点击 创
  • Python语法:... for ... in ... if ...

    Python中 for in if 语句是一种简洁的构建List的方法 从for给定的List中选择出满足if条件的元素组成新的List 其中if是可以省略的 下面举几个简单的例子进行说明 for in for in 语句 实例如下 1 a
  • 【Android基础篇】AlertDialog自定义setView方法的控件响应方法

    Android使用AlertDialog弹出对话框时 如果需要自定义对话框界面 就需要用到setView来设置界面 此时 界面上一般都会有需响应或需记录结果的控件 这就需要查找控件了 下面就是一个在自定义对话框中查找控件并进行响应的实例 L