`

Android中自定义对话框小结

阅读更多
今天小结下在android中两个activity之间传递数据的知识点,其中还参考用了个模糊的效果。

1 主程序AndroDialog
  import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.Button;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;

public class AndroDialog extends Activity {
    /** Called when the activity is first created. */

    private Button startDialogBtn;
    private static final int MY_CUSTOM_DIALOG = 0;

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        startDialogBtn = (Button)findViewById(R.id.startdialog);
        startDialogBtn.setOnClickListener(new OnClickListener(){
        public void onClick(View v) {
        startCustomDialog();

    }
        });
    }

        private void startCustomDialog() {
        Intent intent = new Intent(this,SearchDialog.class);
        startActivityForResult(intent, MY_CUSTOM_DIALOG);
        }
       
        public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        switch(requestCode) {
        case (MY_CUSTOM_DIALOG) : {
        if (resultCode == Activity.RESULT_OK) {
//这里用日志去记录从自定义对话框中返回的结果
        Log.d("ANDRO_DIALOG","Coming back from the search dialog..");
       
//获得返回的数据
String searchQuery = data.getStringExtra(SearchDialog.SEARCH_QUERY_RESULT_FROM_DIALOG);
        Log.d("ANDRO_DIALOG", "Search query result: " + searchQuery);
        }
        break;
        }
        }

对应的mail.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<TextView 
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/hello"
    />
<Button android:text="Show Custom Dialog"
    android:id="@+id/startdialog"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content">
</Button>
</LinearLayout>

2 弹出的第二个对话框
   SearchDialog.java
package com.liao;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.WindowManager;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;

public class SearchDialog extends Activity{

public static final String SEARCH_QUERY_RESULT_FROM_DIALOG = "SEARCH_DIALOG";
private Button searchBtn;
private Button cancelBtn;
private EditText searchEdit;


public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.dialog);
searchBtn = (Button)findViewById(R.id.search);
searchBtn.setOnClickListener(new OnClickListener(){
public void onClick(View v) {
returnSearchQuery();
}
});
cancelBtn = (Button)findViewById(R.id.cancel);
cancelBtn.setOnClickListener(new OnClickListener(){
public void onClick(View v) {
cancelDialog();
}
});
searchEdit = (EditText)findViewById(R.id.search_query);
searchEdit.setText("query");
getWindow().setFlags(WindowManager.LayoutParams.FLAG_BLUR_BEHIND,
WindowManager.LayoutParams.FLAG_BLUR_BEHIND);

}
private void returnSearchQuery(){
Intent resultIntent = new Intent(this, SearchDialog.class);
resultIntent.putExtra(SEARCH_QUERY_RESULT_FROM_DIALOG, searchEdit.getText().toString());
setResult(Activity.RESULT_OK, resultIntent);
finish();
}
private void cancelDialog(){
finish();
}
}
dialog.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:id="@+id/layout_root"
              android:orientation="vertical"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent"
              android:padding="10dp">
    <EditText android:id="@+id/search_query"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"/>
    <LinearLayout android:orientation="horizontal"
    android:background="@android:drawable/bottom_bar" android:paddingLeft="4.0dip"
    android:paddingTop="5.0dip" android:paddingRight="4.0dip"
    android:paddingBottom="1.0dip" android:layout_width="fill_parent"
    android:layout_height="wrap_content">
    <Button android:id="@+id/search" android:layout_width="0.0dip"
        android:layout_height="fill_parent" android:text="Search"
        android:layout_weight="1.0" />
    <Button android:id="@+id/cancel" android:layout_width="0.0dip"
        android:layout_height="fill_parent" android:text="Cancel"
        android:layout_weight="1.0" />
</LinearLayout>
</LinearLayout>

配置文件:
  <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.liao"
      android:versionCode="1"
      android:versionName="1.0">


    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".AndroDialog"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
           
           
        </activity>
   <activity android:name=".SearchDialog"
          android:label="SearchDialog"
          android:theme="@android:style/Theme.Dialog"/>
    </application>
        <uses-sdk android:minSdkVersion="8" />
</manifest>
        }

}
分享到:
评论

相关推荐

    Android中Dialog对话框的使用小结

    在Android应用开发中,Dialog对话框是一种非常常见的用户交互组件,用于向用户显示临时信息或者进行简单的确认操作。本文将对Android中的Dialog对话框使用进行总结,包括基础的使用方法和几种常见类型的对话框。 ...

    智能家居系统 普通对话框Dialog-教案.doc

    课堂小结时,强调了对话框的代码实现,特别是`AlertDialog.Builder`的API应用,同时指出自定义对话框中布局解析器的使用是难点,需要重点理解和掌握。通过这样的教学方式,学生不仅能学习到对话框的基本使用,还能...

    对话框Android

    #### 小结 通过对上述知识点的详细解析,我们可以看到,在Android程序设计中,`Toast`和`Dialog`都是非常实用且重要的交互工具。正确合理地使用它们能够显著提升用户体验。希望本文对你在Android开发过程中有所帮助...

    Android---UI篇---Dialog(对话框)

    #### 四、小结 通过以上内容的学习,我们了解了Dialog的基本概念以及如何使用`AlertDialog.Builder`来创建常见的对话框。同时,还介绍了如何自定义对话框以满足更加复杂的需求。掌握这些知识将有助于我们在实际开发...

    androidWebView学习小结

    在Android开发中,WebView是一个非常重要的组件,它允许我们在应用程序中内嵌网页内容,实现与网页的交互。WebView基于Webkit渲染引擎,这使得它在性能和兼容性上与Safari和Chrome等浏览器保持一致。在本文中,我们...

    精通ANDROID 3(中文版)1/2

    8.1 使用Android中的对话框  8.1.1 设计提醒对话框  8.1.2 设计提示对话框  8.1.3 Android对话框的特性  8.1.4 重新设计提示对话框  8.2 使用托管对话框  8.2.1 理解托管对话框协议  8.2.2 将非托管...

    Android开发案例驱动教程 配套代码

    本章小结 42 第4章 UI基础知识 43 4.1 Android UI组件概述 43 4.1.1 View 43 4.1.2 ViewGroup 44 4.1.3 布局管理器 44 4.2 UI设计工具 44 4.2.1 DroidDraw工具 44 4.2.2 ADT插件UI设计工具 46 4.3 事件处理...

    精通Android 3 (中文版)2/2

    8.1 使用Android中的对话框  8.1.1 设计提醒对话框  8.1.2 设计提示对话框  8.1.3 Android对话框的特性  8.1.4 重新设计提示对话框  8.2 使用托管对话框  8.2.1 理解托管对话框协议  8.2.2 将非托管...

    疯狂Android讲义源码

     1.7 本章小结 33  第2章 Android应用的界面编程 35  2.1 界面编程与视图(View)组件 36  2.1.1 视图组件与容器组件 36  2.1.2 使用XML布局文件控制UI  界面 40  2.1.3 在代码中控制UI界面 41  2.1.4 使用...

    Android编程入门很简单.(清华出版.王勇).part1

    1.5小结 第2章搭建你的开发环境 2.1配置前的准备工作 2.1.1 Android支持的操作系统 2.1.2准备“四大法宝” 2.2安装并配置JDK 2.2.1 安装JDK 2.2.2配置JDK 2.3安装并配置Eclipse 2.3.1 运行Eclipse 2.3.2 了解Eclipse...

    Android编程入门很简单.(清华出版.王勇).part2

    1.5小结 第2章搭建你的开发环境 2.1配置前的准备工作 2.1.1 Android支持的操作系统 2.1.2准备“四大法宝” 2.2安装并配置JDK 2.2.1 安装JDK 2.2.2配置JDK 2.3安装并配置Eclipse 2.3.1 运行Eclipse 2.3.2 了解Eclipse...

    Android典型技术模块开发详解

    目录 第一篇 Android开发初步 第1章 Android初识 1.1 Android简介 1.1.1 认识Android 1.1.2 Android系统框架 1.1.3 应用程序框架 1.2 Eclipse开发环境 1.2.1 安装ADT插件 1.2.2 安装SDK ...16.7 本章小结

    Android Webview使用小结

    其次,为了使Android Webview响应JavaScript中的`alert`函数,我们需要自定义一个`WebChromeClient`并重写`onJsAlert`方法。在此方法中,我们可以构建一个原生的对话框来显示`alert`的内容。确保返回值为`true`表示...

    AlertDialog

    小结 `AlertDialog`在Android开发中扮演着重要的角色,它能帮助开发者与用户进行有效交互。掌握`AlertDialog`的创建和使用,是提高用户体验的关键一步。通过实践`AllDialogDemo`中的示例,你将能够灵活运用`...

    微信小程序之网络请求简单封装实例详解

    ### 小结 微信小程序中的网络请求相较于Android来说感觉简单很多,我们可以使用微信小程序提供的API来解决网络请求问题。封装网络请求可以减少代码的重复,提高代码的可维护性和可读性。同时,封装网络请求也可以...

Global site tag (gtag.js) - Google Analytics