`

Android自定义Dialog

 
阅读更多

 

主activity

 

  1. package com.su.testcustomdialog;  
  2.    
  3. import com.su.testcustomdialog.MyDialog.Dialogcallback;  
  4.    
  5. import android.app.Activity;  
  6. import android.os.Bundle;  
  7. import android.view.View;  
  8. import android.widget.Button;  
  9. import android.widget.TextView;  
  10.    
  11. public class CustomDialogActivity extends Activity {  
  12.         private TextView textView;  
  13.    
  14.         /** Called when the activity is first created. */  
  15.         @Override  
  16.         public void onCreate(Bundle savedInstanceState) {  
  17.                 super.onCreate(savedInstanceState);  
  18.                 setContentView(R.layout.main);  
  19.                 textView = (TextView) findViewById(R.id.textView11);  
  20.                 Button button = (Button) findViewById(R.id.button1);  
  21.                 button.setOnClickListener(new View.OnClickListener() {  
  22.                         @Override  
  23.                         public void onClick(View v) {  
  24.                                 MyDialog myDialog = new MyDialog(CustomDialogActivity.this);  
  25.                                 myDialog.setContent("哥来自Activity");  
  26.                                 myDialog.setDialogCallback(dialogcallback);  
  27.                                 myDialog.show();  
  28.    
  29.                         }  
  30.                 });  
  31.         }  
  32. /** 
  33.  * 设置mydialog需要处理的事情 
  34.  */  
  35.         Dialogcallback dialogcallback = new Dialogcallback() {  
  36.    
  37.                 @Override  
  38.                 public void dialogdo(String string) {  
  39.                         textView.setText("哥來自Dialog: " + string);  
  40.    
  41.                 }  
  42.         };  
  43.    
  44. }  


然后是MyDialog的核心了

 


 

  1. package com.su.testcustomdialog;  
  2. import android.app.Dialog;  
  3. import android.content.Context;  
  4. import android.view.View;  
  5. import android.widget.Button;  
  6. import android.widget.EditText;  
  7. import android.widget.TextView;  
  8. /** 
  9.  * 自定义dialog 
  10.  * @author sfshine 
  11.  * 
  12.  */  
  13. public class MyDialog {  
  14.    
  15.         Context context;  
  16.         Dialogcallback dialogcallback;  
  17.         Dialog dialog;  
  18.         Button sure;  
  19.         TextView textView;  
  20.         EditText editText;  
  21.         /** 
  22.          * init the dialog 
  23.          * @return 
  24.          */  
  25.         public MyDialog(Context con) {  
  26.                 this.context = con;  
  27.                 dialog = new Dialog(context, R.style.dialog);  
  28.                 dialog.setContentView(R.layout.dialog);  
  29.                 textView = (TextView) dialog.findViewById(R.id.textview);  
  30.                 sure = (Button) dialog.findViewById(R.id.button1);  
  31.                 editText = (EditText) dialog.findViewById(R.id.editText1);  
  32.    
  33.                 sure.setOnClickListener(new View.OnClickListener() {  
  34.    
  35.                         @Override  
  36.                         public void onClick(View v) {  
  37.                                 dialogcallback.dialogdo(editText.getText().toString());  
  38.                                 dismiss();  
  39.    
  40.                         }  
  41.                 });  
  42.    
  43.         }  
  44.         /** 
  45.          * 设定一个interfack接口,使mydialog可以處理activity定義的事情 
  46.          * @author sfshine 
  47.          * 
  48.          */  
  49.         public interface Dialogcallback {  
  50.                 public void dialogdo(String string);  
  51.         }  
  52.    
  53.         public void setDialogCallback(Dialogcallback dialogcallback) {  
  54.                 this.dialogcallback = dialogcallback;  
  55.         }  
  56.    
  57.         /** 
  58.          * @category Set The Content of the TextView 
  59.          * */  
  60.         public void setContent(String content) {  
  61.                 textView.setText(content);  
  62.         }  
  63.    
  64.         /** 
  65.          * Get the Text of the EditText 
  66.          * */  
  67.         public String getText() {  
  68.                 return editText.getText().toString();  
  69.         }  
  70.    
  71.         public void show() {  
  72.                 dialog.show();  
  73.         }  
  74.    
  75.         public void hide() {  
  76.                 dialog.hide();  
  77.         }  
  78.    
  79.         public void dismiss() {  
  80.                 dialog.dismiss();  
  81.         }  
  82.    
  83. }  


dialog的布局

 

 

  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="wrap_content"  
  5.     android:layout_margin="30.0dp"  
  6.     android:orientation="vertical"  
  7.     android:padding="10dip" >  
  8.    
  9.     <!-- 这里如果使用android:layout_width="5000dip"设置一个极大的值 系统就会 -->  
  10.    
  11.     <TextView  
  12.         android:layout_width="wrap_content"  
  13.         android:layout_height="wrap_content"  
  14.         android:layout_margin="30.0dp"  
  15.         android:gravity="center"  
  16.         android:text="自定义Dialog"  
  17.         android:textColor="#F0F"  
  18.         android:textSize="20dip" />  
  19.    
  20.     <TextView  
  21.         android:id="@+id/textview"  
  22.         android:layout_width="wrap_content"  
  23.         android:layout_height="wrap_content" />  
  24.    
  25.     <EditText  
  26.         android:id="@+id/editText1"  
  27.         android:layout_width="match_parent"  
  28.         android:layout_height="wrap_content"  
  29.         android:ems="10" >  
  30.     </EditText>  
  31.    
  32.     <Button  
  33.         android:id="@+id/button1"  
  34.         android:layout_width="wrap_content"  
  35.         android:layout_height="wrap_content"  
  36.         android:layout_gravity="right"  
  37.         android:text="確定" />  
  38.    
  39. </LinearLayout>  


style 文件

 

 

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <resources>  
  3.    
  4.     <style name="dialog" parent="@android:style/Theme.Dialog">  
  5.         <item name="android:windowFrame">@null</item>  
  6.         <item name="android:windowIsFloating">true</item>  
  7.         <item name="android:windowIsTranslucent">false</item>  
  8.         <item name="android:windowNoTitle">true</item>  
  9.         <item name="android:background">#FFF</item>  
  10.         <item name="android:windowBackground">@android:color/transparent</item>  
  11.         <item name="android:backgroundDimEnabled">true</item>  
  12.     </style>  
  13.    
  14. </resources>  
分享到:
评论

相关推荐

    android 自定义Dialog提示+动画效果

    在Android开发中,自定义Dialog是一种常见的需求,它允许开发者根据应用的UI风格和功能需求进行个性化设计。本文将深入探讨如何实现一个带有动画效果的自定义Dialog,并以"android 自定义Dialog提示+动画效果"为主题...

    Android 自定义dialog

    在Android开发中,自定义Dialog是一种常见的需求,它允许开发者根据应用的UI风格和功能需求创建具有...通过学习和实践,你将能够熟练掌握Android自定义Dialog的技巧,从而在应用开发中提供更加丰富和个性化的用户体验。

    Android自定义dialog

    在Android开发中,自定义Dialog是一种常见的需求,它允许开发者根据应用的设计风格和功能需求创建出独具特色的对话框。本文将深入探讨如何在Android中实现自定义Dialog,并提供相关实践步骤。 首先,我们来理解一下...

    Android自定义dialogDemo

    `Android自定义dialogDemo`是一个实例,帮助开发者理解如何在Android应用中创建并使用自定义的Dialog。下面将详细解释相关知识点。 1. **Dialog基础** Dialog是Android中的一个对话框组件,通常用于显示临时的通知...

    android自定义Dialog的简单实现

    在Android开发中,自定义Dialog是一种常见的需求,它允许开发者根据应用的设计风格或者特定功能来创建具有...在学习和实践中,多参考官方文档和社区资源,如CSDN博客,能帮助你更好地掌握Android自定义Dialog的技巧。

    Android自定义Dialog 界面比较好看

    标题“Android自定义Dialog 界面比较好看”表明我们将探讨如何创建一个视觉上吸引人的自定义Dialog。描述中提到的链接是一个CSDN博客文章,详细介绍了如何实现这一目标。 自定义Dialog的基础在于创建一个新的布局...

    Android自定义Dialog多选对话框(Dialog+Listview+CheckBox)

    在Android开发中,自定义Dialog是一种常见的需求,用于提供一种轻量级的用户交互界面,如提示信息或者进行选择操作。本示例是关于如何创建一个具有多选功能的Dialog,结合了Dialog、ListView和CheckBox的使用。下面...

    android自定义dialog加载窗

    "android自定义dialog加载窗"这个主题主要涵盖了如何在Android应用程序中创建自定义的加载对话框,通常用于显示数据加载或处理过程,给用户以交互反馈。 1. **Dialog基础知识**: Dialog是Android系统提供的一种轻...

    Android 自定义Dialog,文字动态加载效果

    在Android开发中,自定义Dialog是一种常见的需求,它允许开发者根据应用的UI风格和功能需求创建独特的对话框。本文将详细讲解如何通过继承AlertDialog来实现一个具有“加载中...”动态效果的自定义Dialog。 首先,...

    android自定义dialog嵌套listview

    通过以上步骤,我们便成功实现了Android自定义Dialog嵌套ListView的功能,并为ListView的每个条目添加了点击事件处理。这种方式极大地扩展了Dialog的使用场景,使其能够在提供多种选项或展示大量数据时发挥重要作用...

    android 自定义dialog Demo

    在Android开发中,自定义Dialog是一种常见的需求,它允许开发者根据应用的设计风格和功能需求创建具有独特外观和交互的对话框。这篇博客“android 自定义dialog Demo”将深入探讨如何在Android应用程序中实现自定义...

    android 自定义Dialog下载文件

    android自定义Dialog下载文件 ,在自定义的Dialog上显示文件下载的速度和ProgressBar进度,共享给大家! 欢迎指点提议 Email:vipa1888@163.com QQ 840950105 Author: spring sky

    android自定义dialog嵌套listview自适应屏幕

    综上所述,实现“android自定义dialog嵌套listview自适应屏幕”涉及了Android的多个核心组件和概念,包括Dialog的自定义、ListView的适配、屏幕自适应策略以及UI测试。理解并掌握这些知识点,对于提升Android应用的...

    android自定义dialog样式

    这篇博客“android自定义dialog样式”深入探讨了如何通过源码和工具来实现这一目标。接下来,我们将详细讲解相关知识点。 1. **Dialog基础知识** Dialog是Android中的一个组件,它用于在用户界面中弹出一个临时...

    android自定义dialog下载

    在Android开发中,自定义Dialog是一种常见的需求,它允许开发者根据应用的设计风格和功能需求创建具有独特外观和交互方式的对话框。本文将深入探讨如何在Android中实现自定义Dialog,包括基本概念、步骤和一些实用...

    android自定义dialog和Toast

    在Android开发中,自定义Dialog和Toast是提升用户体验和界面个性化的重要手段。Dialog通常用于向用户展示重要信息或需要用户做出决策的情况,而Toast则用于轻量级的通知,不打断用户的当前操作。以下是对如何自定义...

    很好android自定义dialog加载转圈等待,适合初学,透明+正常两种主题

    在Android开发中,自定义Dialog是一种常见的需求,用于提供一种用户交互的方式,通常用来显示一些临时的通知或进行一些简短的操作。在这个主题中,我们主要关注如何创建一个自定义的加载等待Dialog,它包括透明和...

    Android 自定义Dialog

    总结来说,Android自定义Dialog涉及到布局设计、Dialog类的创建、内容设置、事件处理以及封装复用等多个方面。通过理解并掌握这些步骤,开发者可以更灵活地控制Dialog的展示效果,提升应用的用户体验。同时,合理...

Global site tag (gtag.js) - Google Analytics