基本信息
源码名称:android 自定义单选、多选对话框及popwindow窗口实例源码
源码大小:0.21M
文件格式:.zip
开发语言:Java
更新时间:2014-08-21
   友情提示:(无需注册或充值,赞助后即可获取资源下载链接)

     嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300

本次赞助数额为: 2 元 
   源码介绍


package com.geniuseoe2012.popwindow;

import java.util.List;

import com.geniuseoe2012.demo.R;

import android.content.Context;
import android.graphics.drawable.ColorDrawable;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup.LayoutParams;
import android.widget.Button;
import android.widget.ListView;
import android.widget.PopupWindow;
import android.widget.ScrollView;
import android.widget.TextView;

public abstract class AbstractChoicePopWindow implements OnClickListener {

	protected Context mContext;
	protected View mParentView;

	protected ScrollView mScrollView;
	protected TextView mTVTitle;
	protected Button mButtonOK;
	protected Button mButtonCancel;
	protected ListView mListView;

	protected PopupWindow mPopupWindow;
	protected List<String> mList;

	private OnClickListener mOkListener;

	public AbstractChoicePopWindow(Context context, View parentView,
			List<String> list) {
		mContext = context;
		mParentView = parentView;
		mList = list;

		initView(mContext);
	}

	protected void initView(Context context) {
		View view = LayoutInflater.from(context).inflate(
				R.layout.popwindow_listview_layout, null);
		mScrollView = (ScrollView) view.findViewById(R.id.scrollView);
		mTVTitle = (TextView) view.findViewById(R.id.tvTitle);
		mButtonOK = (Button) view.findViewById(R.id.btnOK);
		mButtonOK.setOnClickListener(this);
		mButtonCancel = (Button) view.findViewById(R.id.btnCancel);
		mButtonCancel.setOnClickListener(this);

		mPopupWindow = new PopupWindow(view, LayoutParams.FILL_PARENT,
				LayoutParams.FILL_PARENT);
		mPopupWindow.setFocusable(true);
		ColorDrawable dw = new ColorDrawable(0x00);
		mPopupWindow.setBackgroundDrawable(dw);

		mListView = (ListView) view.findViewById(R.id.listView);

	}

	@Override
	public void onClick(View v) {
		// TODO Auto-generated method stub
		switch (v.getId()) {
		case R.id.btnOK:
			onButtonOK(v);
			break;
		case R.id.btnCancel:
			onButtonCancel(v);
			break;
		}
	}

	public void setOnOKButtonListener(OnClickListener onClickListener) {
		mOkListener = onClickListener;
	}

	public void setTitle(String title) {
		mTVTitle.setText(title);
	}

	public void show(boolean bShow) {

		if (bShow) {
			mScrollView.scrollTo(0, 0);
			mPopupWindow.showAtLocation(mParentView, Gravity.TOP, 0, 0);
		} else {
			mPopupWindow.dismiss();
		}
	}

	protected void onButtonOK(View v) {
		show(false);

		if (mOkListener != null) {
			mOkListener.onClick(v);
		}
	}

	protected void onButtonCancel(View v) {
		show(false);

	}

}