MySpinner

package com.yao.myweather.widget;

import android.content.Context;
import android.util.AttributeSet;
import android.view.View;
import android.widget.AdapterView;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.ListView;
import android.widget.SpinnerAdapter;

import com.yao.myweather.R;

/**
 * 实现下拉菜单PopupWindow浮现的下拉菜单,而非弹出式的下拉菜单 主要由
 * EditText、ImageButton、ListView等几种View主键组成,PopupWindow 后期可以尝试加入RadioButton
 * 
 * 内部分装以上几个主键,对外提供和MySpiner一样的方法,让MySpiner使用跟Spinner一样
 * 
 * @author yaoqinwei
 * 
 */
public class MySpinner extends View {
	private Context mContext; // 上下文

	private EditText mEditText; // 注意这里设置不可编辑状态,以及设置点击事件
	private ImageButton mImageButton; // 点击事件
	private ListView mListView;

	// private PopupWindow mPopupWindow;

	public MySpinner(Context context) {
		super(context);
		mContext = context;
		// 从布局文件中获取View
		mEditText = (EditText) View.inflate(mContext, R.id.myspinner_edittext,
				null);
		mImageButton = (ImageButton) View.inflate(mContext,
				R.id.myspinner_button, null);
	}

	public MySpinner(Context context, AttributeSet attrs) {
		super(context, attrs);
		mContext = context;
		// 从布局文件中获取View
		mEditText = (EditText) View.inflate(mContext, R.id.myspinner_edittext,
				null);
		mImageButton = (ImageButton) View.inflate(mContext,
				R.id.myspinner_button, null);
	}

	public MySpinner(Context context, AttributeSet attrs, int defStyle) {
		super(context, attrs, defStyle);
		mContext = context;
		// 从布局文件中获取View
		mEditText = (EditText) View.inflate(mContext, R.id.myspinner_edittext,
				null);
		mImageButton = (ImageButton) View.inflate(mContext,
				R.id.myspinner_button, null);
	}

	public void setAdapter(SpinnerAdapter adapter) {
		// 设置内部TextView的Adapter
	}

	public void setSelection(int position) {
		// 设置EditText
	}

	public void setOnItemSelectedListener(
			AdapterView.OnItemSelectedListener onItemSelectedListener) {

	}

	public Object getSelectedItem() {
		Object obj = null;

		return obj;
	}
}

你可能感兴趣的:(MySpinner)