Copyright © android 2011 . Powered by
青藤园
Courtesy of Open Web Design
& Hotels - Dubai
分享一个Android中Dialog的使用例子
1、新建工程:DialogTest
2、编写布局文件:
(1)、main.xml 代码如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
/>
<Button
android:id="@+id/button01"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/button01"
/>
<Button
android:id="@+id/button02"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/button02"
/>
<Button
android:id="@+id/button03"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/button03"
/>
<Button
android:id="@+id/button04"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/button04"
/>
</LinearLayout>(2)alert_dialog_text_entry.xml 此部分布局是实现可以用户交互的。<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
android:id="@+id/username_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dip"
android:layout_marginRight="20dip"
android:text="用户名"
android:textAppearance="@android:style/TextAppearance.Medium"
/>
<EditText
android:id="@+id/username_edit"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="20dip"
android:layout_marginRight="20dip"
android:capitalize="none"
android:textAppearance="@android:style/TextAppearance.Medium"
/>
<TextView
android:id="@+id/password_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dip"
android:layout_marginRight="20dip"
android:text="密码"
android:textAppearance="@android:style/TextAppearance.Medium"
/>
<EditText
android:id="@+id/password_edit"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="20dip"
android:layout_marginRight="20dip"
android:capitalize="none"
android:password="true"
android:textAppearance="@android:style/TextAppearance.Medium"
/>
</LinearLayout>3、编写资源文件:strings.xml<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">对话框</string>
<string name="app_name">Android Dialog</string>
<string name="button01">两个button的对话框</string>
<string name="button02">三个button的对话框</string>
<string name="button03">可以进行输入的对话框</string>
<string name="button04">进度框</string>
<string name="alert_dialog_two_buttons_title">这是一个提示框,点击取消后可以返回。</string>
<string name="alert_dialog_ok">确定</string>
<string name="alert_dialog_cancle">取消</string>
<string name="alert_dialog_three_buttons_title">标题部分</string>
<string name="alert_dialog_three_buttons_msg">对于程序员或创业团队来说,还是有必要拥有一个属于自己的博客。
Wordpress 曾经让个人或企业搭建博客变得非常容易。但是我们觉得 Wordpress
还是有些重量级,所以选择了一个非常轻便的工具 toto,一段只有200多行代码的Ruby应用程序。</string>
<string name="alert_dialog_something">进入详细</string>
<string name="alert_diaog_text_entry">请输入</string>
</resources>4、开发主逻辑代码:DialogTest.javapackage com.dialogTest;
import com.listeview.R;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.DatePickerDialog;
import android.app.Dialog;
import android.app.ProgressDialog;
import android.app.TimePickerDialog;
import android.app.AlertDialog.Builder;
import android.content.Context;
import android.content.DialogInterface;
import android.os.Bundle;
import android.text.method.CharacterPickerDialog;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class DialogTest extends Activity {
private static final int dialog4 = 4;
private static final int dialog3 = 3;
private static final int dialog2 = 2;
private static final int dialog1 = 1;
/** Called when the activity is first created. */
private Button button01;
private Button button02;
private Button button03;
private Button button04;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
button01=(Button)findViewById(R.id.button01);
button02=(Button)findViewById(R.id.button02);
button03=(Button)findViewById(R.id.button03);
button04=(Button)findViewById(R.id.button04);
button01.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
showDialog(dialog1);
}
});
button02.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
showDialog(dialog2);
}
});
button03.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
showDialog(dialog3);
}
});
button04.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
showDialog(dialog4);
}
});
}
@Override
protected Dialog onCreateDialog(int id) {
// TODO Auto-generated method stub
switch(id){
case dialog1:
return buildDialog1(DialogTest.this);
case dialog2:
return buildDialog2(DialogTest.this);
case dialog3:
return buildDialog3(DialogTest.this);
case dialog4:
return buildDialog4(DialogTest.this);
}
return null;
}
private Dialog buildDialog4(Context context) {
ProgressDialog dialog=new ProgressDialog(context);
dialog.setTitle("正在下载歌曲");
dialog.setMessage("请稍候......");
/*TimePickerDialog dialog=new TimePickerDialog(context, 0, null, 0, 0, false);
dialog.setTitle("时钟");*/
/*DatePickerDialog dialog=new DatePickerDialog(context, 0, null, 0, 0, 0);
dialog.setTitle("日期");*/
return dialog;
}
private Dialog buildDialog3(Context context) {
LayoutInflater inflater=LayoutInflater.from(this);
final View textEntryView=inflater.inflate(R.layout.alert_dialog_text_entry, null);
AlertDialog.Builder builder=new AlertDialog.Builder(context);
builder.setTitle(R.string.alert_diaog_text_entry);
builder.setView(textEntryView); //关键
builder.setPositiveButton(R.string.alert_dialog_ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
setTitle("单击对话框上的确定按钮");
}
});
builder.setNegativeButton(R.string.alert_dialog_cancle,new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
setTitle("单击了对话框上的取消按钮");
}
});
return builder.create();
}
private Dialog buildDialog2(Context context) {
AlertDialog.Builder builder=new AlertDialog.Builder(context);
builder.setTitle(R.string.alert_dialog_three_buttons_title);
builder.setMessage(R.string.alert_dialog_three_buttons_msg);
builder.setPositiveButton(R.string.alert_dialog_ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
setTitle("单击对话框上的确定按钮");
}
});
builder.setNeutralButton(R.string.alert_dialog_something, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
setTitle("点击了对话框上的进入详细按钮");
}
});
builder.setNegativeButton(R.string.alert_dialog_cancle, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
setTitle("单击了对话框上的取消按钮");
}
});
return builder.create();
}
private Dialog buildDialog1(Context context) {
// TODO Auto-generated method stub
AlertDialog.Builder builder=new AlertDialog.Builder(context);
//builder.setIcon(R.drawable.icon);
builder.setTitle(R.string.alert_dialog_two_buttons_title);
builder.setPositiveButton(R.string.alert_dialog_ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
setTitle("单击对话框上的确定按钮");
}
});
builder.setNegativeButton(R.string.alert_dialog_cancle, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
setTitle("单击了对话框上的取消按钮");
}
});
return builder.create();
}
}5、运行效果显示:
主程序:

Dialog1:

Dialog2:

Dialog3:

Dialog4:

Posted by
android_boy @
2011-7-14 23:22:30
阅读(2766)
评论(0)
上一篇:如何通过wifi调试android程序
下一篇:Android通过AsycTask实现异步加载
上一篇:如何通过wifi调试android程序
下一篇:Android通过AsycTask实现异步加载
Feedback
你还可以输入600/600个字符
发表评论