zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    iOS各种证书
    Error No matching provisioning profiles found
    iOS 一个开发者账号 多台Mac 共用
    外中断(学习汇编)
    端口(学习汇编)
    8086CPU寄存器
    int指令(学习汇编)
    内中断(学习汇编)
    标志寄存器(学习汇编)
    CALL和RET指令(学习汇编)
  • 原文地址:https://www.cnblogs.com/elegant-dancer/p/3346707.html
Copyright © 2011-2022 走看看