展会信息港展会大全

Android基本组件:对话框AlertDialog
来源:互联网   发布日期:2015-10-03 11:31:32   浏览:1941次  

导读:本讲介绍一下Android基本组件:对话框AlertDialog。API:java.lang.Objectandroid.app.AlertDialog.Builder使用AlertDialog.Builder创建对话框需要了解以下几个方法:setTitle :为对话框设置标题setIcon :为......

本讲介绍一下Android基本组件:对话框AlertDialog。

API:

java.lang.Object

android.app.AlertDialog.Builder

使用AlertDialog.Builder创建对话框需要了解以下几个方法:

setTitle :为对话框设置标题

setIcon :为对话框设置图标

setMessage:为对话框设置内容

setView : 给对话框设置自定义样式

setItems :设置对话框要显示的一个list,一般用于显示几个命令时。

setMultiChoiceItems :用来设置对话框显示一系列的复选框。

setNeutralButton:

setPositiveButton:给对话框添加"Yes"按钮

setNegativeButton :对话框添加"No"按钮

create : 创建对话框

show :显示对话框

下面我们来看一下最简单对话框。

这个对话框只是简单的显示内容,使用默认图标,没有按钮,不多说,贴代码:

new AlertDialog.Builder(MyActivity.this).setTitle("提示标题").setMessage("这是提示内容").show();

(MyActivity 是类名,请换成自己的!!)

下面我们为这个对话框加个按钮,效果:

代码:

new AlertDialog.Builder(MyActivity.this)

.setTitle("这是标题")

.setMessage("这是提示内容")

.setPositiveButton("确定",

new DialogInterface.OnClickListener(){

public void onClick(DialogInterface dialoginterface, int i){

//按钮事件

Toast.makeText(Lesson_01_Pic.this, "确定",Toast.LENGTH_LONG).show();

}

}).show();

添加按钮时,需要同时为该按钮指定监听器。

下面,我们修改一个图标,添加两个按钮,同时显示多个选项,先看下效果:

代码:

package com.yfz;

import android.app.Activity;

import android.app.AlertDialog;

import android.app.Dialog;

import android.content.DialogInterface;

import android.content.DialogInterface.OnClickListener;

import android.content.DialogInterface.OnMultiChoiceClickListener;

import android.os.Bundle;

import android.view.View;

import android.widget.Button;

import android.widget.Toast;

public class MyActivity extends Activity {

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

Button button = (Button)findViewById(R.id.b01);

button.setText("对话框");

button.setOnClickListener(new Button.OnClickListener(){

@Override

public void onClick(View v) {

//选项数组

String[] choices={"Facebook","Twitter"};

//Check判断数组,与选项对应

boolean[] chsBool = {true,false};

//包含多个选项及复选框的对话框

AlertDialog dialog = new AlertDialog.Builder(Lesson_02_Dia.this)

.setIcon(android.R.drawable.btn_star_big_on)

.setTitle("调查")

.setMultiChoiceItems(choices, chsBool, multiClick)

.setPositiveButton("Yes", onclick)

.setNegativeButton("No",onclick).create();

dialog.show();

}

});

}

/**

* 对话框复选框事件监听器

*/

OnMultiChoiceClickListener multiClick = new OnMultiChoiceClickListener(){

@Override

public void onClick(DialogInterface dialog, int which, boolean isChecked) {

Toast.makeText(Lesson_02_Dia.this, "第"+(which+1)+"项,选中结果:"+isChecked,Toast.LENGTH_SHORT).show();

}

};

/**

* 对话框按钮点击事件监听器

*/

OnClickListener onclick = new OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

switch (which) {

case Dialog.BUTTON_NEGATIVE:

Toast.makeText(Lesson_02_Dia.this, "No..",

Toast.LENGTH_LONG).show();

break;

case Dialog.BUTTON_NEUTRAL:

Toast.makeText(Lesson_02_Dia.this, "I don't know.",

Toast.LENGTH_LONG).show();

break;

case Dialog.BUTTON_POSITIVE:

Toast.makeText(Lesson_02_Dia.this, "Yes!!",

Toast.LENGTH_LONG).show();

break;

}

}

};

}

说明已经写在注释中了。

下面再介绍一种比较常用的式样,如图:

代码:

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

Button button = (Button)findViewById(R.id.b01);

button.setText("对话框");

button.setOnClickListener(new Button.OnClickListener(){

@Override

public void onClick(View v) {

//选项数组

String[] choices={"新浪微博","校内","街旁"};

//包含多个选项的对话框

AlertDialog dialog = new AlertDialog.Builder(Lesson_02_Dia.this)

.setIcon(android.R.drawable.btn_star)

.setTitle("分享")

.setItems(choices, onselect).create();

dialog.show();

}

});

}

/**

* 选项的事件监听器

*/

OnClickListener onselect = new OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

// TODO Auto-generated method stub

switch (which) {

case 0:

Toast.makeText(Lesson_02_Dia.this, "您选择了新浪微博.",Toast.LENGTH_SHORT).show();

break;

case 1:

Toast.makeText(Lesson_02_Dia.this, "您选择了校内",Toast.LENGTH_SHORT).show();

break;

case 2:

Toast.makeText(Lesson_02_Dia.this, "您选择了街旁",Toast.LENGTH_SHORT).show();

break;

}

}

};

如果在弹出框中做一个登陆界面。

继续补充...先上图...

页面login.xml: 示例写的比较简单,布局大家可以自己完善、修改。

<?xml version="1.0" encoding="utf-8"?>

<TableLayout

android:id="@+id/widget36"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:orientation="vertical"

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

>

<TextView

android:id="@+id/widget37"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="用户名:"

>

</TextView>

<EditText

android:id="@+id/widget38"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text=""

android:textSize="18sp"

>

</EditText>

<TextView

android:id="@+id/widget39"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="密码:"

>

</TextView>

<EditText

android:id="@+id/widget40"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text=""

android:textSize="18sp"

>

</EditText>

</TableLayout>

代码 : (也比较简单)

LayoutInflater factory = LayoutInflater.from(MyActivity.this);

//获得自定义对话框

View view = factory.inflate(R.layout.login, null);

AlertDialog dialog02 = new AlertDialog.Builder(MyActivity.this)

.setIcon(android.R.drawable.btn_star)

.setTitle("登录")

.setView(view)

.setPositiveButton("Yes", onclick)

.setNegativeButton("No",onclick).create();

dialog02.show();

赞助本站

人工智能实验室

相关热词: AlertDialog

AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港