zoukankan      html  css  js  c++  java
  • Android 自定义对话框

    为了提高用户体验,达到理想的效果,一般不直接使用系统提供的对话框,而使用自定义的对话框。

    步骤:

    1、创建对话框的布局文件

     1 <?xml version="1.0" encoding="utf-8"?>
     2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     3     android:layout_width="match_parent"
     4     android:layout_height="match_parent"
     5     android:orientation="vertical">
     6 
     7     <!--标题部分-->
     8     <TextView
     9         android:layout_width="match_parent"
    10         android:layout_height="wrap_content"
    11         android:text="提示信息"
    12         android:gravity="center"
    13         android:layout_margin="30dp"
    14         android:textSize="20sp"/>
    15 
    16     <!--提示消息部分-->
    17     <TextView
    18         android:layout_width="match_parent"
    19         android:layout_height="wrap_content"
    20         android:id="@+id/tipInfo"
    21         android:text="消息内容"
    22         android:gravity="center"/>
    23 
    24     <!--按钮部分-->
    25     <LinearLayout
    26         android:layout_width="match_parent"
    27         android:layout_height="wrap_content"
    28         android:orientation="horizontal"
    29         android:layout_margin="30dp">
    30         <Button
    31             android:layout_width="wrap_content"
    32             android:layout_height="wrap_content"
    33             android:id="@+id/okBtn"
    34             android:text="确定"/>
    35         <Button
    36             android:layout_width="wrap_content"
    37             android:layout_height="wrap_content"
    38             android:layout_marginLeft="20dp"
    39             android:id="@+id/cancelBtn"
    40             android:text="取消"/>
    41     </LinearLayout>
    42 
    43 </LinearLayout>

    2、编写自定义对话框对应的类,需要继承Dialog类。这个类我们一般写在一个单独的.java文件中。

     1 package com.example.myapplication;
     2 
     3 import android.app.Dialog;
     4 import android.content.Context;
     5 import android.os.Bundle;
     6 import android.view.View;
     7 import android.view.Window;
     8 import android.widget.Button;
     9 import android.widget.TextView;
    10 
    11 //定义一个对话框的类,必须继承Dialog,注意是android.app.Dialog类,不是java.awt.Dialog
    12 public class MyDialog extends Dialog {
    13     private String msg;  //提示信息
    14     private TextView msgView;   //提示消息控件
    15     private Button okBtn;   //确定按钮
    16     private Button cancelBtn;   //取消按钮
    17 
    18     //构造函数
    19     public MyDialog(Context context,String msg){
    20         super(context);  //必须要调用基类的这个构造函数,必须要Context的形参
    21         this.msg=msg;
    22     }
    23 
    24     //必须重写onCreate()方法
    25     @Override
    26     protected void onCreate(Bundle savedInstanceState) {
    27         super.onCreate(savedInstanceState);  //自带的,不能缺省
    28         requestWindowFeature(Window.FEATURE_NO_TITLE);  //去掉默认的标题
    29         setContentView(R.layout.my_dialog);   //设置对应的布局文件
    30 
    31         //成员变量会被这些同名的局部变量屏蔽,当然也可以用其他变量名,无影响
    32         TextView msgView=findViewById(R.id.tipInfo);
    33         Button okBtn=findViewById(R.id.okBtn);
    34         Button cancelBtn=findViewById(R.id.cancelBtn);
    35 
    36         //设置消息内容
    37         msgView.setText(msg);
    38 
    39         //为2个按钮设置事件监听
    40         okBtn.setOnClickListener(new View.OnClickListener() {
    41             @Override
    42             public void onClick(View v) {
    43                 //.........
    44             }
    45         });
    46         cancelBtn.setOnClickListener(new View.OnClickListener() {
    47             @Override
    48             public void onClick(View v) {
    49                 //......
    50             }
    51         });
    52 
    53     }
    54 
    55     //操作本类成员的方法,比如setXxx()、getXxx()。当然不写也ok,如果不写,也可以省略大部分的成员变量
    56     //......
    57 
    58 }

    3、使用自定义的对话框

    1  //在Activity(.java文件)中使用自定义的对话框
    2         MyDialog myDialog=new MyDialog(this,"确定退出吗?");
    3         myDialog.show();   //这是继承自基类的方法,可直接用
  • 相关阅读:
    JAVA基础——编程练习(二)
    JAVA基础——面向对象三大特性:封装、继承、多态
    JVM内存
    50. Pow(x, n) (JAVA)
    47. Permutations II (JAVA)
    46. Permutations (JAVA)
    45. Jump Game II (JAVA)
    43. Multiply Strings (JAVA)
    42. Trapping Rain Water (JAVA)
    41. First Missing Positive (JAVA)
  • 原文地址:https://www.cnblogs.com/chy18883701161/p/10872765.html
Copyright © 2011-2022 走看看