Android使用对话框实现
2016 年 4 月 12 日
<
div id=”content” contentScore=”878″>Android为程序员准备的四种类型的Dialog:AlertDialog、ProgressDialog、DatePickerDialog、TimePickerDialog。
使用它们是很简单的。我们经常看到,当我们按下退出键时会出来一个提示框。我们先看看它的实现。
- import android.app.Activity;
- import android.app.AlertDialog;
- import android.app.Dialog;
- import android.content.DialogInterface;
- import android.os.Bundle;
- import android.widget.Button;
- import android.view.View;
- import android.view.View.OnClickListener;
- public class AlertDialogActivity extends Activity implements OnClickListener{
- /** Called when the activity is first created. */
- Button button;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- button = (Button)findViewById(R.id.exitbutton);
- button.setOnClickListener(this);
- }
- @Override
- public void onClick(View v) {
- ExitDialog();
- }
- private void ExitDialog(){
- AlertDialog.Builder builder = new AlertDialog.Builder(AlertDialogActivity.this);
- builder.setTitle(“Exit Confirm”).setIcon(R.drawable.icon)
- .setMessage(“Are you sure to Exit programe?”)
- .setPositiveButton(“确定”, new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- dialog.dismiss();
- AlertDialogActivity.this.finish();
- }
- }).setNegativeButton(“取消”, new DialogInterface.OnClickListener(){
- @Override
- public void onClick(DialogInterface dialog, int which) {
- dialog.dismiss();
- }
- });
- Dialog dialog = builder.create();
- dialog.show();
- }
- }
上面的代码还不算太糟糕,想必大家熟练后会直接 new 一个 AlertDialog.Builder对象:
- new AlertDialog.Builder(myActivity.this).setTitle().setMessage().…….create().show();
有时我们需要添加一个列表,供用户选择:
- final CharSequence[] items = {“Red”, “Green”, “Blue”};
- AlertDialog.Builder builder = new AlertDialog.Builder(this);
- builder.setTitle(“Pick a color”);
- builder.setItems(items, new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface dialog, int item) {
- Toast.makeText(getApplicationContext(), items[item], Toast.LENGTH_SHORT).show();
- }
- });
- AlertDialog alert = builder.create();
也许会设计成单选式样,看起开明朗一点:
- final CharSequence[] items = {“Red”, “Green”, “Blue”};
- AlertDialog.Builder builder = new AlertDialog.Builder(this);
- builder.setTitle(“Pick a color”);
- builder.setSingleChoiceItems(items, –1, new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface dialog, int item) {
- Toast.makeText(getApplicationContext(), items[item], Toast.LENGTH_SHORT).show();
- }
- });
- AlertDialog alert = builder.create();
以上是Android dev Guide上的源码。不需要多余的解释。下面看看建立一个自定义的对话框需要的步骤:
1:为自定义的对话框准备一个布局Layout;
- xml version=“1.0” encoding=“utf-8”?>
- <LinearLayout
- xmlns:android=“http://schemas.android.com/apk/res/android”
- android:orientation=“vertical”
- android:layout_width=“match_parent”
- android:layout_height=“match_parent”>
- <TextView
- android:id=“@+id/textview”
- android:layout_width=“fill_parent”
- android:layout_height=“wrap_content”
- android:text=“请输入文本”
- />
- <EditText
- android:id=“@+id/edittext”
- android:layout_width=“fill_parent”
- android:layout_height=“wrap_content”
- android:autoText=“false”
- />
- LinearLayout>
2:将这个布局导入到一个View 中;
3:创建一个Builder 对象;
4:设置成我们的视图View;
- LayoutInflater inflater = LayoutInflater.from(ctx);
- view = inflater.inflate(R.layout.dialog, null);
- AlertDialog.Builder builder = new AlertDialog.Builder(ctx);
- builder.setView(view);
5:设置按钮 和 监听器;
- builder.setTitle(“这是一个自定义的对话框”);
- builder.setPositiveButton(“确定”, new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- EditText edittext = (EditText)view.findViewById(R.id.edittext);
- enterText = edittext.getText().toString();
- button.setText(enterText);
- }
- });
6:用Builder 创建一个Dialog;
7:显示这个Dialog。
- AlertDialog dialog = builder.create();
- builder.show();
下面是全部代码。很随意,很简单,所以很杂乱。
<
div>
<
ol>