Android 开发过程中经常需要用户自定义的对话框。这种对话框需要支持在对话框里面输入的内容在对话框关闭后传递给当前所在的Activity。今天我写了一个例子来展示用户自定义对话框的定义和使用。用户自定义对话框的例子包含已下几个部分:

1)Activity

CustomDialogActivity,定义一个Activity,包含一个按钮和一个TextView,点击该按钮弹出对话框,在对话框输入字符串,点击对话框上的按钮之后,对话框输入的字符串会显示在这个TextView上。

2)Activity Layout

activity_main2.xml,定义了CustomDialogActivity的布局,包含了一个按钮和一个TextView。

3)Dialog Layout

customdialog.xml,定义了自定义对话框的布局,包含一个输入框和一个按钮。

CustomDialogActivity.java代码如下:

package com.augmentum.example;import com.example.androidexample.R;import android.app.Activity;import android.app.Dialog;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.view.Window;import android.widget.Button;import android.widget.EditText;import android.widget.TextView;public class CustomDialogActivity extends Activity {private Button buttonDialog;    private TextView textDialog;@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.activity_main2);textDialog = (TextView)findViewById(R.id.textView1);buttonDialog = (Button)findViewById(R.id.buttondialog);buttonDialog.setOnClickListener(listener);}private OnClickListener listener = new OnClickListener(){@Overridepublic void onClick(View view) {// TODO Auto-generated method stubshowCustomDialog(textDialog);}};protected void showCustomDialog(final TextView _textDialog) {        // TODO Auto-generated method stub        final Dialog dialog = new Dialog(CustomDialogActivity.this);        dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);        dialog.setContentView(R.layout.customdialog);                final EditText editText = (EditText)dialog.findViewById(R.id.editText1);        Button button = (Button)dialog.findViewById(R.id.button1);            button.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                // TODO Auto-generated method stub                _textDialog.setText(editText.getText().toString());                dialog.dismiss();            }        });            dialog.show();    }}

activity_main2.xml

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"     android:padding="10dip">    <Button        android:id="@+id/buttondialog"        android:layout_width="fill_parent"        android:layout_height="40dip"        android:layout_alignParentBottom="true"        android:layout_centerHorizontal="true"        android:text="Click to show dialog"         android:background="#336699"        android:textSize="25sp"        android:textColor="#ffffff"/>    <TextView        android:id="@+id/textView1"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_centerHorizontal="true"        android:layout_centerVertical="true"        android:text=""         android:textSize="25sp"/></RelativeLayout>

customdialog.xml

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="wrap_content"    android:padding="5dip"     android:background="#336699">    <EditText        android:id="@+id/editText1"        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:layout_alignParentLeft="true"        android:ems="10"         android:hint="enter text to display"        android:singleLine="true">                <requestFocus />    </EditText>    <Button        android:id="@+id/button1"        android:layout_width="120dip"        android:layout_height="40dip"        android:layout_below="@+id/editText1"        android:layout_centerHorizontal="true"        android:layout_marginTop="17dp"        android:text="Submit"        android:textSize="25sp"        android:background="#669900" /></RelativeLayout>

注意:不要忘记把CustomDialogActivity注册到AndroidManifest.xml中。

运行的效果如下:



这种对话框的样式及由那些元素组成均可以自定义,在开发过程中能够经常用到。欢迎批评指正

更多相关文章

  1. android 进度对话框(ProgressDialog)的使用
  2. [Android(安卓)Training视频系列]1.4 Starting Another Activity
  3. Android(安卓)之LayerDrawable层叠样式layer-list及自定义颜色Pr
  4. Android教程之如何使用自定义字体
  5. Android中动画实现单击按钮控制开屏关屏效果(系统animation实现
  6. Android简明开发教程十三:Option Menu 画笔示例
  7. Android(安卓)framework add service
  8. 自定义activity启动退出效果
  9. Android(安卓)7.0 SEAndroid(安卓)app权限配置

随机推荐

  1. Android关于8.0以上Service服务相关问题
  2. Android(安卓)系统(84)---查看分区的大小
  3. Android判断下载File是否为apk文件
  4. Android复习(三)
  5. Android(安卓)Design Support Library
  6. 自定义android模块不编译的问题
  7. Android(安卓)Studio常见错误及解决方法
  8. Android实现振动效果
  9. Android(安卓)之 GrideView网格视图
  10. 常见问题汇总一