Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 512|回复: 0

开发交流:Android dialog应用经验总结

[复制链接]

该用户从未签到

发表于 2011-10-24 10:30:35 | 显示全部楼层 |阅读模式
Android手机操作系统是一款由谷歌推出的开源操作系统。在智能手机领域中,这一操作系统占据着非常重要的地位。在这里我就先来了解一下Android dialog的实现方法。希望可以给大家带来一些帮助。

1、网上说的很多,Android dialog实现的方法有两个
一个是通过AlertDialog.Builder 初始化dialog 然后再showDialog
另一个是通过将androidManifest.xml中的activity的属性设为android:theme="@android:style/Theme.Dialog,伪装为dialog
2、showDialog的线程问题
Android dialog的显示不会阻塞ui线程.....
例子
java代码
protected void onListItemClick(ListView l, View v,

int position, long id) {   

Intent intent = new Intent();   

Bundle bundle = new Bundle();   

switch (editMode) {   

case SELECT:   

bundle.putString("listName", list.get

(position).getName());   

intent.setClass(this, AudioPlayer.class);   

intent.putExtras(bundle);   

startActivity(intent);   

break;   

case RENAME:   

oldName = list.get(position).getName();   

intent.setClass(MusicList.this, DialogActivity.class);   

startActivityForResult(intent, Preferences.RENAME);   

break;   

case DELETE:   

oldName = list.get(position).getName();   

showDialog(CONFIRM_DIALOG);   

delete(oldName,flag);   

break;   

}   

editMode = EditMode.SELECT;   

protected Dialog onCreateDialog(int id) {   

switch (id) {   

case CONFIRM_DIALOG:   

return new AlertDialog.Builder(MusicList.this).setIcon(   

android.R.drawable.ic_dialog_alert).setTitle("确认删除?")   

.setPositiveButton(R.string.confirm,   

new DialogInterface.OnClickListener() {   

public void onClick(DialogInterface dialog,   

int whichButton) {   

mListTool.deleteList(oldName);   

flag = true;   

}   

}).setNegativeButton(R.string.cancel,   

new DialogInterface.OnClickListener() {   

public void onClick(DialogInterface dialog,   

int whichButton) {   

flag = false;   

}   

}).create();   

}   

return null;   

} }   

protected void onListItemClick(ListView l, View v,

int position, long id) {  

Intent intent = new Intent();  

Bundle bundle = new Bundle();  

switch (editMode) {  

case SELECT:  

bundle.putString("listName", list.get(position).getName());  

intent.setClass(this, AudioPlayer.class);  

intent.putExtras(bundle);  

startActivity(intent);  

break;  

case RENAME:  

oldName = list.get(position).getName();  

intent.setClass(MusicList.this, DialogActivity.class);  

startActivityForResult(intent, Preferences.RENAME);  

break;  

case DELETE:  

oldName = list.get(position).getName();  

showDialog(CONFIRM_DIALOG);  

delete(oldName,flag);  

break;  

}  

editMode = EditMode.SELECT;  

protected Dialog onCreateDialog(int id) {  

switch (id) {  

case CONFIRM_DIALOG:  

return new AlertDialog.Builder(MusicList.this).setIcon(  

android.R.drawable.ic_dialog_alert).setTitle("确认删除?")  

.setPositiveButton(R.string.confirm,  

new DialogInterface.OnClickListener() {  

public void onClick(DialogInterface dialog,  

int whichButton) {  

mListTool.deleteList(oldName);  

flag = true;  

}  

}).setNegativeButton(R.string.cancel,  

new DialogInterface.OnClickListener() {  

public void onClick(DialogInterface dialog,  

int whichButton) {  

flag = false;  

}  

}).create();  



}  

return null;  

} }
复制代码
Android dialog的对话框还在初始化得过程中,delete方法就调用了,说明dialog是另开一个线程的,同时提供回调方法
3、取得dialog中Edittext的内容问题
由于Android dialog本身没有提供取得Edittext内容的回调函数,所以需要自己写.....
简单的方法是使用activity伪装dialog,有布局更自由,消息传递更方便地优点
回复

使用道具 举报

该用户从未签到

发表于 2011-10-24 10:30:38 | 显示全部楼层

Re:开发交

报个到,发现是好东西
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

GMT+8, 2025-1-11 05:04 , Processed in 0.337578 second(s), 33 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表