android 圆角按钮怎样从点击一个Dialog的按钮之后跳转到另外一个Ac...

今天我用自己写的一个Demo 和大家详细介绍一个Android中的对话框的使用技巧。&
1.确定取消对话框
对话框中有2个按钮&& 通过调用 setPositiveButton 方法 和 setNegativeButton 方法 可以设置按钮的显示内容以及按钮的监听事件。
我们使用AlerDialog 创建对话框
AlertDialog.Builder&builder&=&new&AlertDialog.Builder(MainDialog.this);&&&
使用builder设置对话框的title button icon 等等
builder.setIcon(R.drawable.icon);&&
&&&&&&&builder.setTitle(&你确定要离开吗?&);&&
&&&&&&&builder.setPositiveButton(&确定&,&new&DialogInterface.OnClickListener()&{&&
&&&&&&&&&&&public&void&onClick(DialogInterface&dialog,&int&whichButton)&{&&
&&&&&&&&&&&&&&&//这里添加点击确定后的逻辑&&
&&&&&&&&&&&&&&&showDialog(&你选择了确定&);&&
&&&&&&&&&&&}&&
&&&&&&&});&&
&&&&&&&builder.setNegativeButton(&取消&,&new&DialogInterface.OnClickListener()&{&&
&&&&&&&&&&&public&void&onClick(DialogInterface&dialog,&int&whichButton)&{&&
&&&&&&&&&&&&&&&//这里添加点击确定后的逻辑&&
&&&&&&&&&&&&&&&showDialog(&你选择了取消&);&&
&&&&&&&&&&&}&&
&&&&&&&});&&
&&&&&&&builder.create().show();&&
&&这个dialog用于现实onClick后监听的内容信息
private&void&showDialog(String&str)&{&&
w&AlertDialog.Builder(MainDialog.this)&&
&&&&&.setMessage(str)&&
&&&&&.show();&&
2.多个按钮信息框
AlertDialog.Builder&builder&=&new&AlertDialog.Builder(MainDialog.this);&&&&&&&&&&&
builder.setIcon(R.drawable.icon);&&
builder.setTitle(&投票&);&&
builder.setMessage(&您认为什么样的内容能吸引您?&);&&
builder.setPositiveButton(&有趣味的&,&new&DialogInterface.OnClickListener()&{&&
&&&&public&void&onClick(DialogInterface&dialog,&int&whichButton)&{&&
&&&&&&&&showDialog(&你选择了有趣味的&);&&
builder.setNeutralButton(&有思想的&,&new&DialogInterface.OnClickListener()&{&&
&&&&public&void&onClick(DialogInterface&dialog,&int&whichButton)&{&&
&&&&&&&&showDialog(&你选择了有思想的&);&&&&&&&&&&&&&&&&&&&&&&
builder.setNegativeButton(&主题强的&,&new&DialogInterface.OnClickListener()&{&&
&&&&public&void&onClick(DialogInterface&dialog,&int&whichButton)&{&&
&&&&&&&&showDialog(&你选择了主题强的&);&&&&
builder.create().show();&&
这个数组用于列表选择
final&String[]&mItems&=&{&item0&,&item1&,&itme2&,&item3&,&itme4&,&item5&,&item6&};&&
AlertDialog.Builder&builder&=&new&AlertDialog.Builder(MainDialog.this);&&&
&&&&&&&&builder.setTitle(&列表选择框&);&&
&&&&&&&&builder.setItems(mItems,&new&DialogInterface.OnClickListener()&{&&
&&&&&&&&&&&&public&void&onClick(DialogInterface&dialog,&int&which)&{&&
&&&&&&&&&&&&&&&&//点击后弹出窗口选择了第几项&&
&&&&&&&&&&&&&&&&showDialog(&你选择的id为&&+&which&+&&&,&&&+&mItems[which]);&&
&&&&&&&&&&&&}&&
&&&&&&&&});&&
&&&&&&&&builder.create().show();&&
4.单项选择列表框
mSingleChoice 用于记录单选中的ID
int&mSingleChoiceID&=&-1;&&
AlertDialog.Builder&builder&=&new&AlertDialog.Builder(MainDialog.this);&&&
mSingleChoiceID&=&-1;&&
builder.setIcon(R.drawable.icon);&&
&&&&builder.setTitle(&单项选择&);&&
&&&&builder.setSingleChoiceItems(mItems,&0,&new&DialogInterface.OnClickListener()&{&&
&&&&&&&&public&void&onClick(DialogInterface&dialog,&int&whichButton)&{&&
&&&&&&&&&&&&&&&&mSingleChoiceID&=&whichB&&
&&&&&&&&&&&&&&&&showDialog(&你选择的id为&&+&whichButton&+&&&,&&&+&mItems[whichButton]);&&
&&&&&&&&}&&
&&&&builder.setPositiveButton(&确定&,&new&DialogInterface.OnClickListener()&{&&
&&&&&&&&public&void&onClick(DialogInterface&dialog,&int&whichButton)&{&&
&&&&&&&&&&&&if(mSingleChoiceID&&&0)&{&&
&&&&&&&&&&&&showDialog(&你选择的是&&+&mSingleChoiceID);&&
&&&&&&&&&&&&}&&
&&&&&&&&}&&
&&&&builder.setNegativeButton(&取消&,&new&DialogInterface.OnClickListener()&{&&
&&&&&&&&public&void&onClick(DialogInterface&dialog,&int&whichButton)&{&&
&&&&&&&&}&&
&&&builder.create().show();&&
5.进度条框
点击进度条框按钮后 开启一个线程计算读取的进度
假设读取结束为 100
Progress在小于100的时候一直在线程中做循环++ 只到读取结束后,停止线程。
&&&&&&&&&&mProgressDialog&=&new&ProgressDialog(MainDialog.this);&&
&&&&&mProgressDialog.setIcon(R.drawable.icon);&&
&&&&&mProgressDialog.setTitle(&进度条窗口&);&&
&&&&&mProgressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);&&
&&&&&mProgressDialog.setMax(MAX_PROGRESS);&&
&&&&&mProgressDialog.setButton(&确定&,&new&DialogInterface.OnClickListener()&{&&
&&&&&&&&&public&void&onClick(DialogInterface&dialog,&int&whichButton)&{&&
&&&&&&&&&&&&&//这里添加点击后的逻辑&&
&&&&&&&&&}&&
&&&&&});&&
&&&&&mProgressDialog.setButton2(&取消&,&new&DialogInterface.OnClickListener()&{&&
&&&&&&&&&public&void&onClick(DialogInterface&dialog,&int&whichButton)&{&&
&&&&&&&&&&&&&//这里添加点击后的逻辑&&
&&&&&&&&&}&&
&&&&&});&&
&&&&&mProgressDialog.show();&&
&&&&&new&Thread(this).start();&&
ic&void&run()&{&&
int&Progress&=&0;&&
while(Progress&&&MAX_PROGRESS)&{&&
&&&&Thread.sleep(100);&&
&&&&Progress++;&&&&
&&&&mProgressDialog.incrementProgressBy(1);&&
}&catch&(InterruptedException&e)&{&&
&&&&//&TODO&Auto-generated&catch&block&&
&&&&e.printStackTrace();&&
6.多项选择列表框
MultiChoiceID
用于记录多选选中的id号 存在ArrayList中
选中后 add 进ArrayList
取消选中后 remove 出ArrayList。
ArrayList&&Integer&MultiChoiceID&=&new&ArrayList&&Integer&();&&
AlertDialog.Builder&builder&=&new&AlertDialog.Builder(MainDialog.this);&&&
MultiChoiceID.clear();&&
builder.setIcon(R.drawable.icon);&&
&&&&builder.setTitle(&多项选择&);&&
&&&&builder.setMultiChoiceItems(mItems,&&
&&&&&&&&&&&&new&boolean[]{false,&false,&false,&false,&false,&false,&false},&&
&&&&&&&&&&&&new&DialogInterface.OnMultiChoiceClickListener()&{&&
&&&&&&&&&&&&&&&&public&void&onClick(DialogInterface&dialog,&int&whichButton,&&
&&&&&&&&&&&&&&&&&&&&&&&&boolean&isChecked)&{&&
&&&&&&&&&&&&&&&&&&&if(isChecked)&{&&
&&&&&&&&&&&&&&&&&&&&&&&MultiChoiceID.add(whichButton);&&
&&&&&&&&&&&&&&&&&&&&&&&showDialog(&你选择的id为&&+&whichButton&+&&&,&&&+&mItems[whichButton]);&&
&&&&&&&&&&&&&&&&&&&}else&{&&
&&&&&&&&&&&&&&&&&&&&&&&MultiChoiceID.remove(whichButton);&&
&&&&&&&&&&&&&&&&&&&}&&
&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&}&&
&&&&&&&&&&&&});&&
&&&&builder.setPositiveButton(&确定&,&new&DialogInterface.OnClickListener()&{&&
&&&&&&&&public&void&onClick(DialogInterface&dialog,&int&whichButton)&{&&
&&&&&&&&&&&&String&str&=&&&;&&
&&&&&&&&&&&&int&size&=&MultiChoiceID.size();&&
&&&&&&&&&&&&for&(int&i&=&0&;i&&&&i++)&{&&
&&&&&&&&&&&&str+=&mItems[MultiChoiceID.get(i)]&+&&,&&;&&
&&&&&&&&&&&&}&&
&&&&&&&&&&&&showDialog(&你选择的是&&+&str);&&
&&&&&&&&}&&
&&&&builder.setNegativeButton(&取消&,&new&DialogInterface.OnClickListener()&{&&
&&&&&&&&public&void&onClick(DialogInterface&dialog,&int&whichButton)&{&&
&&&&&&&&}&&
&&&builder.create().show();&&
7.自定义布局
讲到自定义布局我就得多说一说了,为什么要多说一说呢?&
其实自定义布局在Android的开发中非常重要 因为它能让开发者做出自己五彩缤纷的Activity 而不用去使用系统枯燥的界面。
自定义dialog有什么好处?
比如我们在开发过长当中 要通过介绍系统发送的一个广播弹出一个dialog . 但是dialog必需是基于activity才能呈现出来 如果没有activity 的话 程序就会崩溃。所以我们可以写一个自定义的 dialog 把它定义成一个activity
这样我们收到一条打开dialog的广播后 直接启动这个 activity& 程序正常运行~~&
这就是自定义dialog的好处。
注明:下面这个例子只是写了自定义dialog 没有把它单独的写在一个activity中 如果须要的话 可以自己改一下。
AlertDialog.Builder&builder&=&new&AlertDialog.Builder(MainDialog.this);&&&
&LayoutInflater&factory&=&LayoutInflater.from(this);&&
&final&View&textEntryView&=&factory.inflate(R.layout.test,&null);&&
&&&&&builder.setIcon(R.drawable.icon);&&
&&&&&builder.setTitle(&自定义输入框&);&&
&&&&&builder.setView(textEntryView);&&
&&&&&builder.setPositiveButton(&确定&,&new&DialogInterface.OnClickListener()&{&&
&&&&&&&&&public&void&onClick(DialogInterface&dialog,&int&whichButton)&{&&
&&&&&&&&&&&
&&&&&&&&&EditText&userName&=&(EditText)&textEntryView.findViewById(R.id.etUserName);&&
&&&&&&&&&EditText&password&=&(EditText)&textEntryView.findViewById(R.id.etPassWord);&&
&&&&&&&&&showDialog(&姓名&:&&&+&userName.getText().toString()&&+&&密码:&&+&password.getText().toString()&);&&
&&&&&&&&&}&&
&&&&&});&&
&&&&&builder.setNegativeButton(&取消&,&new&DialogInterface.OnClickListener()&{&&
&&&&&&&&&public&void&onClick(DialogInterface&dialog,&int&whichButton)&{&&
&&&&&&&&&}&&
&&&&&});&&
&&&builder.create().show();&&
&span&style=&color:#000000;&&&?xml&version=&1.0&&encoding=&utf-8&?&&&
&RelativeLayout&xmlns:android=&/apk/res/android&&&
android:layout_height=&wrap_content&&&&
android:layout_width=&wrap_content&&&
android:orientation=&horizontal&&&
android:id=&@+id/dialog&&&&
&LinearLayout&&
android:layout_height=&wrap_content&&&&
android:layout_width=&wrap_content&&&
android:orientation=&horizontal&&&
android:id=&@+id/dialogname&&&&
&TextView&android:layout_height=&wrap_content&&&
&&&android:layout_width=&wrap_content&&&
&&android:id=&@+id/tvUserName&&&&
&&android:text=&姓名:&&/&&&
&EditText&android:layout_height=&wrap_content&&&
&&android:layout_width=&wrap_content&&&&
&&android:id=&@+id/etUserName&&&&
&&android:minWidth=&200dip&/&&&
&/LinearLayout&&&&&
&LinearLayout&&
android:layout_height=&wrap_content&&&&
android:layout_width=&wrap_content&&&
android:orientation=&horizontal&&&
android:id=&@+id/dialognum&&&
&android:layout_below=&@+id/dialogname&&&
&&&TextView&android:layout_height=&wrap_content&&&
&&&android:layout_width=&wrap_content&&&
&&android:id=&@+id/tvPassWord&&&&
&&android:text=&密码:&&/&&&
&EditText&android:layout_height=&wrap_content&&&
&&android:layout_width=&wrap_content&&&&
&&android:id=&@+id/etPassWord&&&&
&&android:minWidth=&200dip&/&&&
&&/LinearLayout&&&&&
&&&/RelativeLayout&&/span&&&
8.读取进度框
显示一个正在转圈的进度条loading
mProgressDialog&=&new&ProgressDialog(this);&&
&mProgressDialog.setTitle(&读取ing&);&&
&mProgressDialog.setMessage(&正在读取中请稍候&);&&
&mProgressDialog.setIndeterminate(true);&&
&mProgressDialog.setCancelable(true);&&
&mProgressDialog.show();&&
源码下载地址:/index.php?ac=file&oid=8727
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:298291次
积分:3335
积分:3335
排名:第4615名
原创:14篇
转载:252篇
评论:39条
(1)(4)(7)(8)(21)(12)(16)(7)(2)(17)(8)(2)(7)(8)(8)(3)(7)(2)(6)(5)(6)(2)(9)(7)(7)(14)(4)(7)(3)(2)(5)(10)(14)(18)(2)(1)(4)当前访客身份:游客 [
当前位置:
我自定义了一个dialog,dialog上有9个按钮,我想在一个activity中调用这个dialog,然后用户点击这9个按钮的其中一个,然后改activity获取按钮的返回值,请问这个怎么实现?我在做期末项目,卡住了很久,拜托各位指点一下可以不?
import android.app.D
import android.content.C
import android.os.B
public class MyDialog extends Dialog
public MyDialog(Context context)
super(context);
this.context =
public MyDialog(Context context, int theme)
super(context, theme);
this.context =
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
this.setContentView(R.layout.dialog);
&TableLayout xmlns:android=&/apk/res/android&
android:layout_width=&wrap_content&
android:layout_height=&wrap_content&
android:layout_centerHorizontal=&true&
android:layout_centerVertical=&true&
android:background=&@drawable/dialog_bg&
android:padding=&10dp& &
&TableRow&
android:id=&@+id/b1&
android:layout_width=&50dp&
android:text=&@string/w_1&
android:textSize=&20sp& /&
android:id=&@+id/b2&
android:layout_width=&50dp&
android:text=&@string/w_2&
android:textSize=&20sp& /&
android:id=&@+id/b3&
android:layout_width=&50dp&
android:text=&@string/w_3&
android:textSize=&20sp& /&
&/TableRow&
&TableRow&
android:id=&@+id/b4&
android:layout_width=&50dp&
android:text=&@string/w_4&
android:textSize=&20sp& /&
android:id=&@+id/b5&
android:layout_width=&50dp&
android:text=&@string/w_5&
android:textSize=&20sp& /&
android:id=&@+id/b6&
android:layout_width=&50dp&
android:text=&@string/w_6&
android:textSize=&20sp& /&
&/TableRow&
&TableRow&
android:id=&@+id/b7&
android:layout_width=&50dp&
android:text=&@string/w_7&
android:textSize=&20sp& /&
android:id=&@+id/b8&
android:layout_width=&50dp&
android:text=&@string/w_8&
android:textSize=&20sp& /&
android:id=&@+id/b9&
android:layout_width=&50dp&
android:text=&@string/w_9&
android:textSize=&20sp& /&
&/TableRow&
&/TableLayout&
import android.app.A
import android.app.D
import android.os.B
import android.view.V
import android.view.View.OnClickL
public class MainActivity extends Activity
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViewById(R.id.button1).setOnClickListener(new OnClickListener()
public void onClick(View v)
Dialog dialog = new MyDialog(MainActivity.this, R.style.MyDialog);
dialog.show();
// 如何获得dialog的返回值?
---------------问题补充---------------
:因为要为9个按钮加点击监听,不过在dialog里面加监听好像有点问题。
共有4个答案
<span class="a_vote_num" id="a_vote_num_
<span class="a_vote_num" id="a_vote_num_
http://my.oschina.net/laiwanshan/blog/99481 看看这篇博客
<span class="a_vote_num" id="a_vote_num_
什么错误,能打印出来吗?
--- 共有 1 条评论 ---
是不是在继承Dialog的类里面监听的添加方法不同?我在类里面:findViewById(R.id.b1).setOnClickListener(new OnClickListener(){...});我这样写eclipse提示我改成setOnFocusChangeListener这样之类的,改了之后又提示我改回setOnClickListener。。。
(2年前)&nbsp&
<span class="a_vote_num" id="a_vote_num_
可以接听或者是呀回调函数~很多方法可以的
--- 共有 1 条评论 ---
我就是不会怎么监听啊。自定义的dialog里面为按钮加监听的话会报错,然后值我也不会传回来。。。郁闷死了。&_&
(2年前)&nbsp&
有什么技术问题吗?
Master_...的其他问题
类似的话题雨松MOMO 的BLOG
用户名:雨松MOMO
文章数:88
评论数:169
访问量:1396361
注册日期:
阅读量:9556
阅读量:2616
阅读量:538
阅读量:235
51CTO推荐博文
雨松MOMO带大家盘点Android 中的对话框
今天我用自己写的一个Demo 和大家详细介绍一个Android中的对话框的使用技巧。
1.确定取消对话框
对话框中有2个按钮 通过调用 setPositiveButton 方法 和 setNegativeButton 方法 可以设置按钮的显示内容以及按钮的监听事件。&
我们使用AlerDialog 创建对话框&
AlertDialog.Builder&builder&=&new&AlertDialog.Builder(MainDialog.this);&&
使用builder设置对话框的title button icon 等等&
builder.setIcon(R.drawable.icon); &&&&&&&&builder.setTitle(&你确定要离开吗?&); &&&&&&&&builder.setPositiveButton(&确定&,&new&DialogInterface.OnClickListener()&{ &&&&&&&&&&&&public&void&onClick(DialogInterface&dialog,&int&whichButton)&{ &&&&&&&&&&&&&&&&//这里添加点击确定后的逻辑 &&&&&&&&&&&&&&&&showDialog(&你选择了确定&); &&&&&&&&&&&&} &&&&&&&&}); &&&&&&&&builder.setNegativeButton(&取消&,&new&DialogInterface.OnClickListener()&{ &&&&&&&&&&&&public&void&onClick(DialogInterface&dialog,&int&whichButton)&{ &&&&&&&&&&&&&&&&//这里添加点击确定后的逻辑 &&&&&&&&&&&&&&&&showDialog(&你选择了取消&); &&&&&&&&&&&&} &&&&&&&&}); &&&&&&&&builder.create().show(); &
这个dialog用于现实onClick后监听的内容信息&
private&void&showDialog(String&str)&{ &w&AlertDialog.Builder(MainDialog.this) &&&&&&.setMessage(str) &&&&&&.show(); &}&
2.多个按钮信息框
AlertDialog.Builder&builder&=&new&AlertDialog.Builder(MainDialog.this);&&&&&&&&& &builder.setIcon(R.drawable.icon); &builder.setTitle(&投票&); &builder.setMessage(&您认为什么样的内容能吸引您?&); &builder.setPositiveButton(&有趣味的&,&new&DialogInterface.OnClickListener()&{ &&&&&public&void&onClick(DialogInterface&dialog,&int&whichButton)&{ &&&&&&&&&showDialog(&你选择了有趣味的&); &&&&&} &}); &builder.setNeutralButton(&有思想的&,&new&DialogInterface.OnClickListener()&{ &&&&&public&void&onClick(DialogInterface&dialog,&int&whichButton)&{ &&&&&&&&&showDialog(&你选择了有思想的&);&&&&&&&&&&&&&&&&&&&& &&&&&} &}); &builder.setNegativeButton(&主题强的&,&new&DialogInterface.OnClickListener()&{ &&&&&public&void&onClick(DialogInterface&dialog,&int&whichButton)&{ &&&&&&&&&showDialog(&你选择了主题强的&);&& &&&&&} &}); &builder.create().show();&
这个数组用于列表选择
final&String[]&mItems&=&{&item0&,&item1&,&itme2&,&item3&,&itme4&,&item5&,&item6&};&
AlertDialog.Builder&builder&=&new&AlertDialog.Builder(MainDialog.this);& &&&&&&&&&builder.setTitle(&列表选择框&); &&&&&&&&&builder.setItems(mItems,&new&DialogInterface.OnClickListener()&{ &&&&&&&&&&&&&public&void&onClick(DialogInterface&dialog,&int&which)&{ &&&&&&&&&&&&&&&&&//点击后弹出窗口选择了第几项 &&&&&&&&&&&&&&&&&showDialog(&你选择的id为&&+&which&+&&&,&&&+&mItems[which]); &&&&&&&&&&&&&} &&&&&&&&&}); &&&&&&&&&builder.create().show(); &
4.单项选择列表框
mSingleChoice 用于记录单选中的ID
int&mSingleChoiceID&=&-1;&
AlertDialog.Builder&builder&=&new&AlertDialog.Builder(MainDialog.this);& &&mSingleChoiceID&=&-1; &builder.setIcon(R.drawable.icon); &&&&&builder.setTitle(&单项选择&); &&&&&builder.setSingleChoiceItems(mItems,&0,&new&DialogInterface.OnClickListener()&{ &&&&&&&&&public&void&onClick(DialogInterface&dialog,&int&whichButton)&{ &&&&&&&&&&&&&&&&&mSingleChoiceID&=&whichButton; &&&&&&&&&&&&&&&&&showDialog(&你选择的id为&&+&whichButton&+&&&,&&&+&mItems[whichButton]); &&&&&&&&&} &&&&&}); &&&&&builder.setPositiveButton(&确定&,&new&DialogInterface.OnClickListener()&{ &&&&&&&&&public&void&onClick(DialogInterface&dialog,&int&whichButton)&{ &&&&&&&&&&&&&if(mSingleChoiceID&&0)&{ &&&&&&&&&&&&&showDialog(&你选择的是&&+&mSingleChoiceID); &&&&&&&&&&&&&} &&&&&&&&&} &&&&&}); &&&&&builder.setNegativeButton(&取消&,&new&DialogInterface.OnClickListener()&{ &&&&&&&&&public&void&onClick(DialogInterface&dialog,&int&whichButton)&{ &&&&&&&&&&} &&&&&}); &&&&builder.create().show();&
5.进度条框
点击进度条框按钮后 开启一个线程计算读取的进度 假设读取结束为 100
Progress在小于100的时候一直在线程中做循环++ 只到读取结束后,停止线程。
&&&&&&&&&&mProgressDialog&=&new&ProgressDialog(MainDialog.this); &&&&&&mProgressDialog.setIcon(R.drawable.icon); &&&&&&mProgressDialog.setTitle(&进度条窗口&); &&&&&&mProgressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); &&&&&&mProgressDialog.setMax(MAX_PROGRESS); &&&&&&mProgressDialog.setButton(&确定&,&new&DialogInterface.OnClickListener()&{ &&&&&&&&&&public&void&onClick(DialogInterface&dialog,&int&whichButton)&{ &&&&&&&&&&&&&&//这里添加点击后的逻辑 &&&&&&&&&&} &&&&&&}); &&&&&&mProgressDialog.setButton2(&取消&,&new&DialogInterface.OnClickListener()&{ &&&&&&&&&&public&void&onClick(DialogInterface&dialog,&int&whichButton)&{ &&&&&&&&&&&&&&//这里添加点击后的逻辑 &&&&&&&&&&} &&&&&&}); &&&&&&mProgressDialog.show(); &&&&&&new&Thread(this).start(); &&ic&void&run()&{ &int&Progress&=&0; &while(Progress&&)&{ &try&{ &&&&&Thread.sleep(100); &&&&&Progress++;&& &&&&&mProgressDialog.incrementProgressBy(1); &}&catch&(InterruptedException&e)&{ &&&&&//&TODO&Auto-generated&catch&block &&&&&e.printStackTrace(); &} && &} &
6.多项选择列表框
MultiChoiceID 用于记录多选选中的id号 存在ArrayList中
选中后 add 进ArrayList
取消选中后 remove 出ArrayList。
ArrayList&MultiChoiceID&=&new&ArrayList&();&
AlertDialog.Builder&builder&=&new&AlertDialog.Builder(MainDialog.this);& &&MultiChoiceID.clear(); &builder.setIcon(R.drawable.icon); &&&&&builder.setTitle(&多项选择&); &&&&&builder.setMultiChoiceItems(mItems, &&&&&&&&&&&&&new&boolean[]{false,&false,&false,&false,&false,&false,&false}, &&&&&&&&&&&&&new&DialogInterface.OnMultiChoiceClickListener()&{ &&&&&&&&&&&&&&&&&public&void&onClick(DialogInterface&dialog,&int&whichButton, &&&&&&&&&&&&&&&&&&&&&&&&&boolean&isChecked)&{ &&&&&&&&&&&&&&&&&&&&if(isChecked)&{ &&&&&&&&&&&&&&&&&&&&&&&&MultiChoiceID.add(whichButton); &&&&&&&&&&&&&&&&&&&&&&&&showDialog(&你选择的id为&&+&whichButton&+&&&,&&&+&mItems[whichButton]); &&&&&&&&&&&&&&&&&&&&}else&{ &&&&&&&&&&&&&&&&&&&&&&&&MultiChoiceID.remove(whichButton); &&&&&&&&&&&&&&&&&&&&} &&&&&&&&&&&&&&&&&&&&& &&&&&&&&&&&&&&&&&} &&&&&&&&&&&&&}); &&&&&builder.setPositiveButton(&确定&,&new&DialogInterface.OnClickListener()&{ &&&&&&&&&public&void&onClick(DialogInterface&dialog,&int&whichButton)&{ &&&&&&&&&&&&&String&str&=&&&; &&&&&&&&&&&&&int&size&=&MultiChoiceID.size(); &&&&&&&&&&&&&for&(int&i&=&0&;i&&;&i++)&{ &&&&&&&&&&&&&str+=&mItems[MultiChoiceID.get(i)]&+&&,&&; &&&&&&&&&&&&&} &&&&&&&&&&&&&showDialog(&你选择的是&&+&str); &&&&&&&&&} &&&&&}); &&&&&builder.setNegativeButton(&取消&,&new&DialogInterface.OnClickListener()&{ &&&&&&&&&public&void&onClick(DialogInterface&dialog,&int&whichButton)&{ &&&&&&&&&&} &&&&&}); &&&&builder.create().show();&
7.自定义布局
讲到自定义布局我就得多说一说了,为什么要多说一说呢?
其实自定义布局在Android的开发中非常重要 因为它能让开发者做出自己五彩缤纷的Activity 而不用去使用系统枯燥的界面。
自定义dialog有什么好处?
比如我们在开发过长当中 要通过介绍系统发送的一个广播弹出一个dialog . 但是dialog必需是基于activity才能呈现出来 如果没有activity 的话 程序就会崩溃。所以我们可以写一个自定义的 dialog 把它定义成一个activity
这样我们收到一条打开dialog的广播后 直接启动这个 activity 程序正常运行~~
这就是自定义dialog的好处。
注明:下面这个例子只是写了自定义dialog 没有把它单独的写在一个activity中 如果须要的话 可以自己改一下。
AlertDialog.Builder&builder&=&new&AlertDialog.Builder(MainDialog.this);& &&LayoutInflater&factory&=&LayoutInflater.from(this); &&final&View&textEntryView&=&factory.inflate(R.layout.test,&null); &&&&&&builder.setIcon(R.drawable.icon); &&&&&&builder.setTitle(&自定义输入框&); &&&&&&builder.setView(textEntryView); &&&&&&builder.setPositiveButton(&确定&,&new&DialogInterface.OnClickListener()&{ &&&&&&&&&&public&void&onClick(DialogInterface&dialog,&int&whichButton)&{ &&&&&&&&&& &&&&&&&&&&EditText&userName&=&(EditText)&textEntryView.findViewById(R.id.etUserName); &&&&&&&&&&EditText&password&=&(EditText)&textEntryView.findViewById(R.id.etPassWord); &&&&&&&&&&showDialog(&姓名&:&&&+&userName.getText().toString()&&+&&密码:&&+&password.getText().toString()&); &&&&&&&&&&} &&&&&&}); &&&&&&builder.setNegativeButton(&取消&,&new&DialogInterface.OnClickListener()&{ &&&&&&&&&&public&void&onClick(DialogInterface&dialog,&int&whichButton)&{ &&&&&&&&&&&} &&&&&&}); &&&&builder.create().show();&
&style=&color:#000000;&&version=&1.0&&encoding=&utf-8&&&xmlns:android=&/apk/res/android&&android:layout_height=&wrap_content&& &android:layout_width=&wrap_content&&android:orientation=&horizontal&&android:id=&@+id/dialog&&&android:layout_height=&wrap_content&& &android:layout_width=&wrap_content&&android:orientation=&horizontal&&android:id=&@+id/dialogname&&&&android:layout_height=&wrap_content&&&&&android:layout_width=&wrap_content&&&&android:id=&@+id/tvUserName&& &&&android:text=&姓名:&&&&android:layout_height=&wrap_content&&&&android:layout_width=&wrap_content&& &&&android:id=&@+id/etUserName&& &&&android:minWidth=&200dip&&&& &&android:layout_height=&wrap_content&& &android:layout_width=&wrap_content&&android:orientation=&horizontal&&android:id=&@+id/dialognum&&&android:layout_below=&@+id/dialogname&&&&&&android:layout_height=&wrap_content&&&&&android:layout_width=&wrap_content&&&&android:id=&@+id/tvPassWord&& &&&android:text=&密码:&&&&android:layout_height=&wrap_content&&&&android:layout_width=&wrap_content&& &&&android:id=&@+id/etPassWord&& &&&android:minWidth=&200dip&&&&& &&&&
8.读取进度框
显示一个正在转圈的进度条loading
mProgressDialog&=&new&ProgressDialog(this); &&mProgressDialog.setTitle(&读取ing&); &&mProgressDialog.setMessage(&正在读取中请稍候&); &&mProgressDialog.setIndeterminate(true); &&mProgressDialog.setCancelable(true); &&mProgressDialog.show();&
最后如果你还是觉得我写的不够详细 不要紧我把源代码的下载地址贴出来 欢迎大家一起讨论学习 雨松MOMO希望可以和大家一起进步。
下载地址:
本文出自 “” 博客,请务必保留此出处
了这篇文章
类别:┆阅读(0)┆评论(0)
本文收录至博客专题:《》

我要回帖

更多关于 android 圆角按钮 的文章

 

随机推荐