Android项目中的对话框
来源:互联网 发布:北京php培训公司排名 编辑:程序博客网 时间:2024/05/17 22:57
在一般的Android项目中我们经常会遇到对话框,比如提示对话框、列表对话框、选择对话框、自定义对话框等。在实现方面,Android起始已经提供了相应的接口DialogBuilder。下面我将对常见的几种对话框进行描述。
首先是提示信息对话框:
AlertDialog.Builder builder = new AlertDialog.Builder(this);// 设置标题builder.setTitle("删除");builder.setMessage("确认要删除吗?");builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {Toast.makeText(MainActivity.this, "你已删除", Toast.LENGTH_LONG).show();}});builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {Toast.makeText(MainActivity.this, "你已取消", Toast.LENGTH_LONG).show();}});// 设置是否按任意键退出builder.setCancelable(false);builder.show();
普通列表选择对话框:
AlertDialog.Builder builder = new AlertDialog.Builder(this);builder.setTitle("请选择");final String[] fluit = { "香蕉", "苹果", "橘子", "西瓜", "柠檬", "荔枝" };builder.setItems(fluit, new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {Toast.makeText(MainActivity.this, fluit[which],Toast.LENGTH_LONG).show();}});builder.show();
单选选择对话框:
AlertDialog.Builder builder = new AlertDialog.Builder(this);builder.setTitle("请选择");final String[] fluit = { "香蕉", "苹果", "橘子", "西瓜", "柠檬", "荔枝" };// 设置单选项目builder.setSingleChoiceItems(fluit, -1,new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {Toast.makeText(MainActivity.this, fluit[which],Toast.LENGTH_LONG).show();dialog.cancel();}});builder.show();
多选选择对话框:
final AlertDialog.Builder builder = new AlertDialog.Builder(this);builder.setTitle("请选择");final String[] fluit = { "香蕉", "苹果", "橘子", "西瓜", "柠檬", "荔枝" };// 设置多选项目builder.setMultiChoiceItems(fluit, null,new DialogInterface.OnMultiChoiceClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which,boolean isChecked) {Toast.makeText(MainActivity.this, fluit[which],Toast.LENGTH_LONG).show();}});builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {dialog.cancel();}
自定义对话框:
首先要设置一个自定义的布局:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <EditText android:id="@+id/editText1" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="@string/user_name" android:ems="10" > </EditText> <EditText android:id="@+id/editText2" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="@string/password" android:ems="10" android:inputType="textPassword" /></LinearLayout>
然后在MainActivity类里面实现如下代码:
AlertDialog.Builder builder = new AlertDialog.Builder(this);// 设置标题builder.setTitle("自定义对话框");LayoutInflater inflater = this.getLayoutInflater();// 设置自定义布局View view = inflater.inflate(R.layout.view, null);builder.setView(view);final EditText username = (EditText) view.findViewById(R.id.editText1);final EditText password = (EditText) view.findViewById(R.id.editText2);// 单击确定按钮显示EditText文本内容builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {Toast.makeText(MainActivity.this,username.getText().toString() + "\n"+ password.getText().toString(),Toast.LENGTH_LONG).show();}
布局文件完整代码如下:
<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:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentRight="true" android:layout_alignParentTop="true" android:layout_marginTop="14dp" android:text="@string/btn1" > </Button> <Button android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/button1" android:layout_alignRight="@+id/button1" android:layout_below="@+id/button1" android:text="@string/btn2" /> <Button android:id="@+id/button3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/button2" android:layout_alignRight="@+id/button2" android:layout_below="@+id/button2" android:text="@string/btn3" /> <Button android:id="@+id/button4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/button3" android:layout_alignRight="@+id/button3" android:layout_below="@+id/button3" android:text="@string/btn4" /> <Button android:id="@+id/button5" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/button4" android:layout_alignRight="@+id/button4" android:layout_below="@+id/button4" android:text="@string/btn5" /></RelativeLayout>
MainActivity类里面的完整代码如下:
package com.demo13_alterdialog;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.EditText;import android.widget.Toast;/** * 对话框测试类 * * @author 刘永浪 * */public class MainActivity extends Activity implements OnClickListener {private Button btn1;private Button btn2;private Button btn3;private Button btn4;private Button btn5;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);btn1 = (Button) findViewById(R.id.button1);btn2 = (Button) findViewById(R.id.button2);btn3 = (Button) findViewById(R.id.button3);btn4 = (Button) findViewById(R.id.button4);btn5 = (Button) findViewById(R.id.button5);btn1.setOnClickListener(this);btn2.setOnClickListener(this);btn3.setOnClickListener(this);btn4.setOnClickListener(this);btn5.setOnClickListener(this);}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {getMenuInflater().inflate(R.menu.main, menu);return true;}@Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.button1:btn1Click();break;case R.id.button2:btn2Click();break;case R.id.button3:btn3Click();break;case R.id.button4:btn4Click();break;case R.id.button5:btn5Click();break;}}// 自定义对话框测试private void btn5Click() {AlertDialog.Builder builder = new AlertDialog.Builder(this);// 设置标题builder.setTitle("自定义对话框");LayoutInflater inflater = this.getLayoutInflater();// 设置自定义布局View view = inflater.inflate(R.layout.view, null);builder.setView(view);final EditText username = (EditText) view.findViewById(R.id.editText1);final EditText password = (EditText) view.findViewById(R.id.editText2);// 单击确定按钮显示EditText文本内容builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {Toast.makeText(MainActivity.this,username.getText().toString() + "\n"+ password.getText().toString(),Toast.LENGTH_LONG).show();}});// 单击取消按钮取消操作builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {dialog.cancel();}});builder.show();}// 带多选的选择对话框private void btn4Click() {final AlertDialog.Builder builder = new AlertDialog.Builder(this);builder.setTitle("请选择");final String[] fluit = { "香蕉", "苹果", "橘子", "西瓜", "柠檬", "荔枝" };// 设置多选项目builder.setMultiChoiceItems(fluit, null,new DialogInterface.OnMultiChoiceClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which,boolean isChecked) {Toast.makeText(MainActivity.this, fluit[which],Toast.LENGTH_LONG).show();}});builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {dialog.cancel();}});builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {dialog.cancel();}});builder.show();}// 带单选的选择对话框private void btn3Click() {AlertDialog.Builder builder = new AlertDialog.Builder(this);builder.setTitle("请选择");final String[] fluit = { "香蕉", "苹果", "橘子", "西瓜", "柠檬", "荔枝" };// 设置单选项目builder.setSingleChoiceItems(fluit, -1,new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {Toast.makeText(MainActivity.this, fluit[which],Toast.LENGTH_LONG).show();dialog.cancel();}});builder.show();}// 普通列表选择对话框private void btn2Click() {AlertDialog.Builder builder = new AlertDialog.Builder(this);builder.setTitle("请选择");final String[] fluit = { "香蕉", "苹果", "橘子", "西瓜", "柠檬", "荔枝" };builder.setItems(fluit, new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {Toast.makeText(MainActivity.this, fluit[which],Toast.LENGTH_LONG).show();}});builder.show();}// 提示信息对话框private void btn1Click() {AlertDialog.Builder builder = new AlertDialog.Builder(this);// 设置标题builder.setTitle("删除");builder.setMessage("确认要删除吗?");builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {Toast.makeText(MainActivity.this, "你已删除", Toast.LENGTH_LONG).show();}});builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {Toast.makeText(MainActivity.this, "你已取消", Toast.LENGTH_LONG).show();}});// 设置是否按任意键退出builder.setCancelable(false);builder.show();}}
strings.xml文件完整代码:
<?xml version="1.0" encoding="utf-8"?><resources> <string name="app_name">Demo13_AlterDialog</string> <string name="action_settings">Settings</string> <string name="hello_world">Hello world!</string> <string name="btn1">提示信息对话框</string> <string name="btn2">普通列表选择对话框</string> <string name="btn3">单选选择对话框</string> <string name="btn4">多选选择对话框</string> <string name="btn5">自定义对话框</string> <string name="user_name">username</string> <string name="password">password</string></resources>
0 0
- Android项目中的对话框
- android中的对话框:自定义对话框
- Android中的对话框AlertDialog
- android中的常见对话框
- 浅谈android中的对话框
- android中的对话框
- Android中的对话框
- Android中的diglog对话框
- Android中的对话框
- Android中的Dialog对话框
- android中的对话框
- Android中的悬浮对话框和即点即关对话框
- android中的对话框之三:自定义对话框
- Android 对话框中的进度条 ProgressDialog
- Android 对话框中的进度条 ProgressDialog
- Android 对话框中的进度条 (ProgressDialog)
- Android 对话框中的进度条 ProgressDialog
- Android 中的对话框实现方式
- 黑马程序员 【】java学习之路——计算字符串中字母出现的次数
- Tomcat自定义classLoader加密解密
- 快速排序(java实现)
- nyoj 524 A-B Problem 【Java大数】
- openGL学习之三角形等分
- Android项目中的对话框
- UVa 1329 Corporative Network
- C#中字典的xml文档序列化的一个实现
- MFC计算器 用vector实现和计算逆波兰表达式
- ios-使用委托模式(代理模式)
- 【English】Android -> Training -> Building Your First App -> Starting Another Activity
- 如何安装latex?
- 1.Boost之array
- Mac上android开发环境的搭建