Android对话框总结

一、什么是对话框?

一种次要窗口,包含按钮和各种选项,通过它们可以完成特定命令或任务。 查找和替换对话框 对话框与窗口有区别,它没有最大化按钮、没有最小化按钮、大都不能改变形状大小。(“打开文件”对话框是可以改变大小的) 对话框:是人机交流的一种方式,用户对对话框进行设置,计算机就会执行相应的命令。对话框中有单选框、复选框等。

要我说,对话框,就是一个用于和用户进行对话的小框框。大家见到最多的那种是弹出对话框。

二、对话框有什么用?

对话框不会阻塞主线程,可以和用户进行简单交互,且给人一种清新的感觉,好的对话框不仅不会影响用户体验,反而会让用户喜欢上这种被打扰的感觉。

三、怎么用?

     
   

1、系统对话框

AlertDialog

ProgressDialog

DatePickerDialog

TimePickerDialog

2、自定义对话框

a、使用LayoutInflate和Builder的setView方法实现

b、继承Dialog类复写setContentView实现

实例:

activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:gravity="center"

android:orientation="vertical" >

<Button

android:id="@+id/show1"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:layout_margin="10dp"

android:background="@drawable/button_background"

android:text="dialog1" />

<Button

android:id="@+id/show2"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:layout_margin="10dp"

android:background="@drawable/button_background"

android:text="dialog2" />

<Button

android:id="@+id/show3"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:layout_margin="10dp"

android:background="@drawable/button_background"

android:text="dialog3" />

</LinearLayout>

activity_dialog.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:orientation="vertical" >

<TextView

android:id="@+id/textView1"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:gravity="center"

android:text="标题"

android:textAppearance="?android:attr/textAppearanceLarge" />

<TextView

android:id="@+id/textView2"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:gravity="center"

android:text="这是一个自定义布局的AlertDialog" />

<TextView

android:id="@+id/textView3"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:gravity="center"

android:text="有木有很好玩" />

<TextView

android:id="@+id/textView4"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:gravity="center"

android:text="想怎么布局就怎么布局"

android:textAppearance="?android:attr/textAppearanceMedium" />

<Button

android:id="@+id/button1"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:background="@drawable/button_background"

android:text="确定" />

</LinearLayout>

MainActivity.java

public class MainActivity extends Activity {

private Button show1, show2, show3;

DatePickerDialog m = null;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

show1 = (Button) findViewById(R.id.show1);

show2 = (Button) findViewById(R.id.show2);

show3 = (Button) findViewById(R.id.show3);

show1.setOnClickListener(mClickListener);

show2.setOnClickListener(mClickListener);

show3.setOnClickListener(mClickListener);

}

private View.OnClickListener mClickListener = new OnClickListener() {

@Override

public void onClick(View arg0) {

// TODO Auto-generated method stub

int id = arg0.getId();

switch (id) {

case R.id.show1:

showDialog1();

break;

case R.id.show2:

showDialog2();

break;

case R.id.show3:

showDialog3();

break;

default:

break;

}

}

};

private void showDialog1() {

new AlertDialog.Builder(this).setTitle("dialog 1")

.setMessage("这是最简单的AlertDialog").setPositiveButton("确定", null)

.setNeutralButton("什么", null).setNegativeButton("取消", null)

.create().show();

}

private void showDialog2(){

LayoutInflater inflater = LayoutInflater.from(this);

View view = inflater.inflate(R.layout.activity_dialog, null);

final AlertDialog dialog = new AlertDialog.Builder(this).setView(view).create();

Button ok = (Button) view.findViewById(R.id.button1);

ok.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View arg0) {

// TODO Auto-generated method stub

dialog.dismiss();

}

});

dialog.show();

}

private void showDialog3(){

new MyDialog(this).show();

}

private class MyDialog extends Dialog{

public MyDialog(Context context) {

super(context);

// TODO Auto-generated constructor stub

this.setContentView(R.layout.activity_dialog);

this.setTitle("標題");

Button b = (Button) findViewById(R.id.button1);

b.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View arg0) {

// TODO Auto-generated method stub

dismiss();

}

});

}

}

}

四、注意总结

注意:

1、不要使对话框泛滥

2、自定义对话框时要注意dismiss()或则不用时remove()

3、还有一种定义对话框的方法,那就是把Activity的主题设置为Theme.Dialog

总结:

在这个看颜的时代,要想成为一个好的程序员,首先要成为一名好的设计师。

时间: 2024-10-07 23:54:28

Android对话框总结的相关文章

Android对话框

这周过的实在是艰辛,自打这周二起我的本本就开始闹"罢工",最后还是重装系统了事. . .   只是可怜了我的那些被格了的软件(悲伤辣么大)!  往事不要再提,人生几度风雨... 简单的说一下(这不是介绍)Android对话框吧 1 // Android对话框 2 AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);//创建对话框 3 builder.setTitle("警告"

Android对话框里面的输入值获取不到,空指针异常

写的一个Android对话框,点击按钮获取EditText里面的值,这里一直报空指针异常,研究了很长时间终于解决了. 异常如下: 我原来的代码: //更新对话框 private void updateDialog(final String id){ TableLayout updatemsg = (TableLayout)getLayoutInflater().inflate(R.layout.updatemsg, null); new AlertDialog.Builder(this) .se

Android 对话框使用大全

对话框种类 1.AlertDialog(Dialog)系统对话框. 2.Popupwindow弹出式对话框. 对话框区别 1.AlertDialog非阻塞式对话框:对话框的显示不影响后台任务的执行. 2.PopupWindow阻塞式对话框:对话框弹出后阻塞后台任务执行,直到对话框消失. 对话框示例 Dialog类的对话框 我们一般使用AlertDialog对话框,那么和Dialog有什么区别呢,其实AlertDialog只是继承了Dialog,实现了一些自己的方法而已.所以,AlertDialo

Android 对话框 Dialog

对话框 Dialog 什么是对话框 对话框是在当前的页面之上弹出的小窗口, 用于显示一些重要的提示信息, 提示用户的输入,确认信息, 或显示某种状态.如 :  显示进度条对话框, 退出提示. 对话框的特点: 1, 当前界面弹出的小窗口. 2, 用户要与它进行交互, 可以接收用户输入的信息, 也可以反馈信息给用户. 常用对话框: 1, 普通对话框 AlertDialog 2, 进度条对话框  ProgressDialog 3, 日期对话框    DatePickerDialog 4, 时间对话框

Android对话框自定义标题

Android自带的对话框标题不好看,如果我们需要给弹出的对话框设置一个自己定义的标题,可以使用AlertDialog.Builder的setCustomTitle()方法. 定义一个对话框标题的title.xml文件: <?xml version="1.0" encoding="UTF-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android

android对话框,checkBox,同一时候在同一个页面上保存数据

package com.example.selectonlyonle; import android.app.Activity; import android.app.AlertDialog; import android.app.Dialog; import android.content.DialogInterface; import android.os.Bundle; import android.view.View; import android.widget.Button; impo

转 Android 对话框(Dialog)大全 建立你自己的对话框

Activities提供了一种方便管理的创建.保存.回复的对话框机制,例如 onCreateDialog(int), onPrepareDialog(int, Dialog), showDialog(int), dismissDialog(int)等方法,如果使用这些方法的话,Activity将通过getOwnerActivity()方法返回该Activity管理的对话框(dialog). onCreateDialog(int):当你使用这个回调函数时,Android系统会有效的设置这个 Act

Android对话框(四)PopupWindow

主布局 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddi

Android 对话框(Dialog)大全 建立你自己的对话框

Activities提供了一种方便管理的创建.保存.回复的对话框机制,例如 onCreateDialog(int), onPrepareDialog(int, Dialog), showDialog(int), dismissDialog(int)等方法,如果使用这些方法的话,Activity将通过getOwnerActivity()方法返回该Activity管理的对话框(dialog). onCreateDialog(int):当你使用这个回调函数时,Android系统会有效的设置这个Acti

Android——对话框2(日期和时间对话框)

xml <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:text="点击触发弹出日期对话框" android:onClick="rq_onclick"/> <Button android:layout_width="match_parent" android:l