`
knight_black_bob
  • 浏览: 853021 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

android 自定义 dialog

阅读更多



 

 

 

 

package com.curiousby.baoyou.cn.quote.dialog;
 

import com.curiousby.baoyou.cn.mysqlconsole.R; 
import com.curiousby.baoyou.cn.mysqlconsole.util.KeyBoardUtils;

import android.content.Context; 
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.EditText;
import android.widget.TextView;

/**
 * @author baoyou E-mail:curiousby@163.com
 * @version 2016-8-16 下午4:43:17
 *
 * desc: ...
 */
public class AddDatabaseDialog extends BaseDialog  implements OnClickListener{
	
	private Context mContext;
	
	private EditText mIpEditView;
	private EditText mDatabaseEditView;
	private EditText mUserNameEditView;
	private EditText mPasswordEditView;
	private TextView mConfirmView;
	private TextView mCancelView;

	private OnConfirmListener mOnConfirmListener;
	private OnCancleListener mOnCancleListener;
	
	public AddDatabaseDialog(Context context,OnConfirmListener onConfirmListener,OnCancleListener onCancleListener) {
		super(context,R.style.Theme_Light_AddDatabaseDialog); 
		this.mContext = context;
		this.mOnCancleListener = onCancleListener;
		this.mOnConfirmListener= onConfirmListener;
		setContentView(R.layout.dialog_add_database);
		
		initView();
		initListener();
	}
  

	private void initView() { 
		mIpEditView = (EditText) this.findViewById(R.id.et_dialog_add_database_ip);
		mDatabaseEditView = (EditText) this.findViewById(R.id.et_dialog_add_database_database_name);
		mUserNameEditView = (EditText) this.findViewById(R.id.et_dialog_add_database_database_username);
		mPasswordEditView = (EditText) this.findViewById(R.id.et_dialog_add_database_database_password);
		
		mConfirmView = (TextView) this.findViewById(R.id.tv_dialog_add_database_ok);
		mCancelView = (TextView) this.findViewById(R.id.tv_dialog_add_database_cancel);
	}
	private void initListener() { 
		mConfirmView.setOnClickListener(this);
		mCancelView.setOnClickListener(this);
	}

	@Override
	public void onClick(View view) { 
		switch (view.getId()) {
		case R.id.tv_dialog_add_database_ok:
			mOnConfirmListener.onConfirm(new AddDatabaseDialogEntity(
					mIpEditView.getText().toString(),
					mDatabaseEditView.getText().toString(),
					mUserNameEditView.getText().toString(),
					mPasswordEditView.getText().toString()
					));
			KeyBoardUtils.closeKeybord(mIpEditView, mContext);
			KeyBoardUtils.closeKeybord(mDatabaseEditView, mContext);
			KeyBoardUtils.closeKeybord(mUserNameEditView, mContext);
			KeyBoardUtils.closeKeybord(mPasswordEditView, mContext);
			dismiss();
			break;
		case R.id.tv_dialog_add_database_cancel:
			mOnCancleListener.onCancle(null);
			KeyBoardUtils.closeKeybord(mIpEditView, mContext);
			KeyBoardUtils.closeKeybord(mDatabaseEditView, mContext);
			KeyBoardUtils.closeKeybord(mUserNameEditView, mContext);
			KeyBoardUtils.closeKeybord(mPasswordEditView, mContext);
			dismiss();
			break;
		default:
			break;
		}
	}

	public class AddDatabaseDialogEntity{
		public  String ip;
		public  String databaseName;
		public  String userName;
		public  String password;
		
		public AddDatabaseDialogEntity(String ip, String databaseName,
				String userName, String password) {
			this.ip = ip;
			this.databaseName = databaseName;
			this.userName = userName;
			this.password = password;
		}

		@Override
		public String toString() {
			return "AddDatabaseDialogEntity [ip=" + ip + ", databaseName="
					+ databaseName + ", userName=" + userName + ", password="
					+ password + "]";
		}
	}
}

 

 

 

package com.curiousby.baoyou.cn.mysqlconsole.activity;

import java.lang.ref.WeakReference;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.View;
import android.widget.ImageView;
import android.widget.Toast;

import com.curiousby.baoyou.cn.mysqlconsole.R;
import com.curiousby.baoyou.cn.quote.dialog.AddDatabaseDialog;
import com.curiousby.baoyou.cn.quote.dialog.AddDatabaseDialog.AddDatabaseDialogEntity;
import com.curiousby.baoyou.cn.quote.dialog.BaseDialog.OnCancleListener;
import com.curiousby.baoyou.cn.quote.dialog.BaseDialog.OnConfirmListener;
import com.lidroid.xutils.ViewUtils;
import com.lidroid.xutils.view.annotation.ContentView;
import com.lidroid.xutils.view.annotation.ViewInject;
import com.lidroid.xutils.view.annotation.event.OnClick; 

@ContentView(R.layout.activity_main)
public class MainActivity extends Activity {

	public static final String TAG = "baoyou";
	private Context mContext;
	
	@ViewInject(R.id.iv_btn_menu)
	private ImageView addDatabaseImageView; 
	private AddDatabaseDialog addDatabaseDialog;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		ViewUtils.inject(this);
		mContext = MainActivity.this;
		initView();
	}

	private void initView() {
		OnConfirmListener onConfirmListener = new OnConfirmListener() { 
			@Override
			public void onConfirm(Object obj) { 
				Log.e(TAG, "do save");
				Message msg = new Message(); 
				msg.what = SAVE_DATABASE_INFO; 
				msg.obj = obj;
				mHandler.sendMessage(msg);
			}
		};
		OnCancleListener onCancleListener = new OnCancleListener() {
			
			@Override
			public void onCancle(Object obj) { 
				Log.e(TAG, "donothing");
			}
		};
		addDatabaseDialog = new AddDatabaseDialog(mContext, onConfirmListener, onCancleListener);	
	}

	@OnClick({R.id.iv_btn_menu})
	public  void onclick(View view){
		switch (view.getId()) {
		case R.id.iv_btn_menu:
			addDatabaseDialog.show();
			break;
		default:
			break;
		}
	}

	static final int SAVE_DATABASE_INFO = 1;
	
	private Handler mHandler = new MyHandler(this);
	
	public static class MyHandler extends Handler { 
		WeakReference<MainActivity> mWR; 
		public MyHandler(MainActivity aActivity) {
			mWR = new WeakReference<MainActivity>(aActivity);
		} 
		 @Override
		public void handleMessage(android.os.Message msg) {
			 MainActivity activity = mWR.get();
			switch (msg.what) {
			case SAVE_DATABASE_INFO:

				if (msg.obj instanceof AddDatabaseDialogEntity) {
					AddDatabaseDialogEntity entity = (AddDatabaseDialogEntity)msg.obj;
					Log.i(TAG, ""+entity.toString());
					
					//TODO : SAVA entity
					//TODO: refresh listview
					Toast.makeText(activity,  ""+entity.toString(), Toast.LENGTH_LONG).show();
				}
				break;

			default:
				break;
			}
		};
	};
	
}

 

 

 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="350dip"
    android:layout_height="match_parent"
    android:background="@color/white"
    android:orientation="vertical" >

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/blue_main_color"
        android:gravity="center"
        android:padding="10dip"
        android:text="@string/dialog_add_database_head_title"
        android:textColor="@color/white"
        android:textSize="@dimen/title_size" />

    <View
        android:layout_width="match_parent"
        android:layout_height="0.5dip"
        android:background="@color/gray" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="8dp"
        android:text="@string/dialog_add_database_ip"
        android:textColor="@color/gray"
        android:textSize="@dimen/desc_size" />

    <EditText
        android:id="@+id/et_dialog_add_database_ip"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="1dip"
        android:layout_marginRight="1dip"
        android:layout_marginTop="2dip"
        android:background="@drawable/shap_rect_bg_white"
        android:focusable="true"
        android:inputType=""
        android:padding="8dip" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="8dp"
        android:text="@string/dialog_add_database_database_name"
        android:textColor="@color/gray"
        android:textSize="@dimen/desc_size" />

    <EditText
        android:id="@+id/et_dialog_add_database_database_name"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="1dip"
        android:layout_marginRight="1dip"
        android:layout_marginTop="2dip"
        android:background="@drawable/shap_rect_bg_white"
        android:focusable="true"
        android:inputType=""
        android:padding="8dip" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="8dp"
        android:text="@string/dialog_add_database_username"
        android:textColor="@color/gray"
        android:textSize="@dimen/desc_size" />

    <EditText
        android:id="@+id/et_dialog_add_database_database_username"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="1dip"
        android:layout_marginRight="1dip"
        android:layout_marginTop="2dip"
        android:background="@drawable/shap_rect_bg_white"
        android:focusable="true"
        android:inputType=""
        android:padding="8dip" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="8dp"
        android:text="@string/dialog_add_database_password"
        android:textColor="@color/gray"
        android:textSize="@dimen/desc_size" />

    <EditText
        android:id="@+id/et_dialog_add_database_database_password"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="1dip"
        android:layout_marginRight="1dip"
        android:layout_marginTop="2dip"
        android:background="@drawable/shap_rect_bg_white"
        android:focusable="true"
        android:inputType="textPassword"
        android:padding="8dip" />

    <TextView
        android:id="@+id/tv_dialog_add_database_ok"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_marginLeft="20dip"
        android:layout_marginRight="20dip"
        android:layout_marginTop="15dip"
        android:background="@drawable/selector_btn_confirm"
        android:gravity="center_horizontal"
        android:paddingBottom="10dip"
        android:paddingTop="10dip"
        android:text="@string/dialog_add_database_ok"
        android:textColor="@color/white" />

    <TextView
        android:id="@+id/tv_dialog_add_database_cancel"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_marginLeft="20dip"
        android:layout_marginRight="20dip"
        android:layout_marginTop="15dip"
        android:layout_marginBottom="15dip"
        android:background="@drawable/selector_btn_confirm"
        android:gravity="center_horizontal"
        android:paddingBottom="10dip"
        android:paddingTop="10dip"
        android:text="@string/dialog_add_database_cancel"
        android:textColor="@color/white" />

</LinearLayout>

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

捐助开发者

在兴趣的驱动下,写一个免费的东西,有欣喜,也还有汗水,希望你喜欢我的作品,同时也能支持一下。 当然,有钱捧个钱场(右上角的爱心标志,支持支付宝和PayPal捐助),没钱捧个人场,谢谢各位。



 
 
 谢谢您的赞助,我会做的更好!

 

 

  • 大小: 283.5 KB
0
1
分享到:
评论
1 楼 csqiweikai 2016-08-24  
楼主,可以把res下面的配置文件也发一个三

相关推荐

    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

    在Android应用开发中,Dialog是一种重要的用户交互组件,它用于在主界面之上显示临时的通知或进行简单的交互。本文将深入探讨如何自定义...通过不断实践和优化,你将能够熟练地创建出满足各种需求的自定义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