Android中AlertDialog各种对话框的用法实例详解

 更新时间:2016年04月28日 10:04:12   作者:hester_hester  
这篇文章主要介绍了Android中AlertDialog各种对话框的用法在项目开发中经常用的到,本文给大家介绍的非常详细,具有参考借鉴价值

 目标效果:

程序运行,显示图一的几个按钮,点击按钮分别显示图二到图六的对话框,点击对话框的某一项或者按钮,也会显示相应的吐司输出。

1.activity_main.xml页面存放五个按钮。

activity_main.xml页面:

<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" 
tools:context=".MainActivity" > 
<Button 
android:id="@+id/btnSure" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:layout_marginTop="10dp" 
android:text="确认对话框"/> 
<Button 
android:id="@+id/btnRadio" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:layout_marginTop="60dp" 
android:text="单选对话框"/> 
<Button 
android:id="@+id/btnCheck" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:layout_marginTop="110dp" 
android:text="多选对话框"/> 
<Button 
android:id="@+id/btnList" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:layout_marginTop="160dp" 
android:text="列表对话框"/> 
<Button 
android:id="@+id/btnMy" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:layout_marginTop="210dp" 
android:text="自定义对话框"/> 
</RelativeLayout> 

2.新建dialog.xml页面,作为最后一个自定义对话框的布局页面。

dialog.xml页面:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:orientation="vertical" > 
<LinearLayout 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:orientation="horizontal" > 
<EditText 
android:id="@+id/edInput" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:layout_weight="2" > 
<requestFocus /> 
</EditText> 
<Button 
android:id="@+id/btnOk" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:layout_weight="1" 
android:text="确定" /> 
</LinearLayout> 
<ImageView 
android:id="@+id/ivPicture" 
android:layout_width="wrap_content" 
android:layout_height="280dp" 
android:src="@drawable/white" /> 
<TextView 
android:id="@+id/textView1" 
android:layout_gravity="center" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:text="TextView" /> 
</LinearLayout> 

3.MainActivity.java页面处理对话框的弹出及点击事件。

MainActivity.java页面:

package com.example.alertdialog; 
import android.os.Bundle; 
import android.app.Activity; 
import android.app.AlertDialog; 
import android.content.DialogInterface; 
import android.view.LayoutInflater; 
import android.view.Menu; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.Toast; 
public class MainActivity extends Activity implements OnClickListener { 
private Button btnSure,btnRadio,btnCheck,btnList,btnMy; 
private String[] sexList={"男","女"};//单选列表 
private String[] likeList={"篮球","足球","打游戏","听音乐","看电影"};//多选列表 
private String[] itemList={"项目经理","策划","测试","美工","程序员"};//列表 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.activity_main); 
getId();//获取控件id 
click();//按钮绑定点击事件 
} 
/*获取控件id*/ 
private void getId() { 
btnSure = (Button) findViewById(R.id.btnSure); 
btnRadio=(Button) findViewById(R.id.btnRadio); 
btnCheck=(Button) findViewById(R.id.btnCheck); 
btnList=(Button) findViewById(R.id.btnList); 
btnMy=(Button) findViewById(R.id.btnMy); 
} 
/*按钮绑定点击事件*/ 
private void click() { 
btnSure.setOnClickListener(this); 
btnRadio.setOnClickListener(this); 
btnCheck.setOnClickListener(this); 
btnList.setOnClickListener(this); 
btnMy.setOnClickListener(this); 
} 
@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
getMenuInflater().inflate(R.menu.main, menu); 
return true; 
} 
@Override 
public void onClick(View view) { 
switch (view.getId()) { 
case R.id.btnSure: 
showDialog1();//确认对话框 
break; 
case R.id.btnRadio: 
showDialog2();//单选对话框 
break; 
case R.id.btnCheck: 
showDialog3();//多选对话框 
break; 
case R.id.btnList: 
showDialog4(); 
break; 
case R.id.btnMy: 
showDialog5(); 
break; 
} 
} 
/*确认对话框*/ 
private void showDialog1() { 
AlertDialog.Builder builder=new AlertDialog.Builder(this); 
builder.setTitle("确认对话框");//设置标题 
builder.setIcon(R.drawable.ic_launcher);//设置图标 
builder.setMessage("确认对话框提示内容");//设置内容 
/*添加对话框中确定按钮和点击事件*/ 
builder.setPositiveButton("确定",new DialogInterface.OnClickListener() { 
@Override 
public void onClick(DialogInterface arg0, int arg1) { 
Toast.makeText(MainActivity.this,"点击了确定按钮",Toast.LENGTH_SHORT).show(); 
} 
}); 
/*添加对话框中取消按钮和点击事件*/ 
builder.setNegativeButton("取消",new DialogInterface.OnClickListener() { 
@Override 
public void onClick(DialogInterface arg0, int arg1) { 
Toast.makeText(MainActivity.this,"点击了取消按钮",Toast.LENGTH_SHORT).show(); 
} 
}); 
AlertDialog dialog=builder.create();//获取dialog 
dialog.show();//显示对话框 
} 
/*单选对话框*/ 
private void showDialog2() { 
AlertDialog.Builder builder=new AlertDialog.Builder(this); 
builder.setTitle("性别");//设置标题 
builder.setIcon(R.drawable.ic_launcher);//设置图标 
/*参数一位单选列表文字,参数二为默认第几个选中(-1默认不选中),参数三是创建监听器*/ 
builder.setSingleChoiceItems(sexList,-1,new DialogInterface.OnClickListener() { 
@Override 
public void onClick(DialogInterface dialog, int which) { 
String sex=sexList[which]; 
Toast.makeText(MainActivity.this,"这个人性别为"+sex, Toast.LENGTH_SHORT).show(); 
} 
}); 
/*添加对话框中取消按钮点击事件*/ 
builder.setNegativeButton("取消",new DialogInterface.OnClickListener() { 
@Override 
public void onClick(DialogInterface dialog, int which) { 
dialog.dismiss();//关闭对话框 
} 
}); 
AlertDialog dialog=builder.create();//获取dialog 
dialog.show();//显示对话框 
} 
/*多选对话框*/ 
private void showDialog3() { 
AlertDialog.Builder builder=new AlertDialog.Builder(this); 
builder.setTitle("爱好");//设置标题 
builder.setIcon(R.drawable.ic_launcher);//设置图标 
/*参数同单选对话框一样,另外第二个参数默认不选中为null,而不是-1*/ 
builder.setMultiChoiceItems(likeList,null,new DialogInterface.OnMultiChoiceClickListener() { 
@Override 
public void onClick(DialogInterface dialog, int which, boolean isChecked) { 
if(isChecked){ 
Toast.makeText(MainActivity.this,"我喜欢"+likeList[which],Toast.LENGTH_SHORT).show(); 
}else{ 
Toast.makeText(MainActivity.this,"我不喜欢"+likeList[which],Toast.LENGTH_SHORT).show(); 
} 
} 
}); 
/*添加对话框中取消按钮点击事件*/ 
builder.setNegativeButton("取消",new DialogInterface.OnClickListener() { 
@Override 
public void onClick(DialogInterface dialog, int which) { 
dialog.dismiss();//关闭对话框 
} 
}); 
AlertDialog dialog=builder.create();//获取dialog 
dialog.show();//显示对话框 
} 
/*列表对话框*/ 
private void showDialog4() { 
AlertDialog.Builder builder=new AlertDialog.Builder(this); 
builder.setTitle("部门列表");//设置标题 
builder.setIcon(R.drawable.ic_launcher);//设置图标 
builder.setItems(itemList,new DialogInterface.OnClickListener() { 
@Override 
public void onClick(DialogInterface dialog, int which) { 
Toast.makeText(MainActivity.this,"我点击了"+itemList[which],Toast.LENGTH_SHORT).show(); 
} 
}); 
AlertDialog dialog=builder.create();//获取dialog 
dialog.show();//显示对话框 
} 
/*自定义对话框*/ 
private void showDialog5() { 
LayoutInflater inflater=LayoutInflater.from(this); 
View view=inflater.inflate(R.layout.dialog,null);//获取自定义布局 
AlertDialog.Builder builder=new AlertDialog.Builder(this); 
builder.setTitle("自定义对话框");//设置标题 
builder.setIcon(R.drawable.ic_launcher);//设置图标 
builder.setView(view);//设置自定义样式布局到对话框 
AlertDialog dialog=builder.create();//获取dialog 
dialog.show();//显示对话框 
} 
}

4.运行就出现目标效果了。

关于Android中AlertDialog各种对话框的用法就给大家介绍这么多,希望对大家有所帮助!

相关文章

  • Android中AlertDialog各种对话框的用法实例详解

    Android中AlertDialog各种对话框的用法实例详解

    这篇文章主要介绍了Android中AlertDialog各种对话框的用法在项目开发中经常用的到,本文给大家介绍的非常详细,具有参考借鉴价值
    2016-04-04
  • Android Glide常见使用方式讲解

    Android Glide常见使用方式讲解

    对于Glide这个加载图片的框架,很多人都在用,我之前使用的是ImageLoader,最近查资料时,发现Glide才是Google推荐的加载图片框架,功能非常强大,而且还有Google专人维护,要知道,ImageLoader已经没人维护了,除了问题可没人解答。所以有必要整理一下Glide的使用
    2023-01-01
  • Android直播软件搭建之实现背景颜色滑动渐变效果的详细代码

    Android直播软件搭建之实现背景颜色滑动渐变效果的详细代码

    这篇文章主要介绍了Android直播软件搭建之实现背景颜色滑动渐变效果的详细代码,代码简单易懂,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-09-09
  • Android实现自由拖动并显示文字的悬浮框

    Android实现自由拖动并显示文字的悬浮框

    这篇文章主要为大家详细介绍了Android实现自由拖动并显示文字的悬浮框,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-01-01
  • Android中使用ListView绘制自定义表格技巧分享

    Android中使用ListView绘制自定义表格技巧分享

    使用ListView绘制自定义的表格有朋友尝试过没有,下面为大家分享下要实现下图的效果有几个方面,参照着这几点做了个简单的实现不是问题好了,话不多说看代码
    2013-06-06
  • Android EditText监听回车键并处理两次回调问题

    Android EditText监听回车键并处理两次回调问题

    这篇文章主要介绍了Android EditText监听回车键并处理两次回调问题,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-08-08
  • Android使用系统相机进行拍照的步骤

    Android使用系统相机进行拍照的步骤

    这篇文章主要介绍了Android使用系统相机进行拍照的步骤,帮助大家更好的进行Android开发,感兴趣的朋友可以了解下
    2020-12-12
  • Android文件读写的几种方式

    Android文件读写的几种方式

    文件读写作为Android四大数据存储方式之一,又分为内部存储和外部存储两种,下面这篇文章主要给大家介绍了关于Android文件读写的几种方式,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-06-06
  • Flutter 包管理器和资源管理使用学习

    Flutter 包管理器和资源管理使用学习

    这篇文章主要为大家介绍了Flutter 包管理器和资源管理使用学习,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-12-12
  • Android实现生成二维码并保存到相册

    Android实现生成二维码并保存到相册

    这篇文章主要介绍了如何利用Android实现二维码的生成,并且保存到本地相册。文中的示例代码讲解详细,感兴趣的小伙伴快跟随小编学习一下
    2022-04-04

最新评论