Android开发中如何创建自定义对话框

原创|使用教程|编辑:郝浩|2013-09-29 10:09:24.000|阅读 3198 次

概述:本文将阐述如何在Android创建一个自定义对话框并在其中获得结果。

背景:

无论是Android,还是其他什么平台,对话框的主要形式都是弹出,或者我们可以说是一个在当前活动中打开的提示,来执行一些操作或实现一些功能。

你可以用一个对话框来问用户以确认一个行动,向用户通告一个事件,或者提示用户额外信息。因为对话框扰乱UI流,你应该只是把它们当做最后的手段来用。在大多数情况下,你应该直接整合确认、反馈和提示到你的APP中。

当一个对话框打开,当前活动(通过该活动我们打开了对话框)成为背景,而对话框成为前景。在执行对话框中操作并关闭之后,背景中的活动又变回前景。

使用代码

对话是创建对话框的基础类。

创建一个带有如下细节的项目:

  • ProjectName: CustomDialogBox
  • PackageName: sat.tuts4mobile.customdialogbox
  • ActivityName: CustomDialogActivity >

在CustomDialogActivity.java文件复制如下代码:

package sat.tuts4mobile.customdialogbox;

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 {

    Button buttonDialog;
    TextView textDialog;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        textDialog = (TextView)findViewById(R.id.textView1);
        buttonDialog = (Button)findViewById(R.id.buttondialog);
        buttonDialog.setOnClickListener(new OnClickListener() {
            
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                showCustomDialog(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.customdailog);
        
        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_mail.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>

创建新的XML文件命名为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>

当你运行应用程序的时候,你将看到如下显示:

Android  Android  Android



标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果

文章转载自:慧都控件网

登录 慧都网发表评论


暂无评论...

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
相关厂商
相关产品
aiCharts for Android

专门为Android设计和优化,支持多种不同形式的图表类型

Aspose.Words for Android via Java

从Android应用程序中生成,操作,转换和渲染Word文件,而不依赖于Microsoft Word。

在线
客服
在线
QQ
电话
咨询
400-700-1020
购物车 反馈 返回
顶部
在线客服系统
live chat