基于上一篇写的SimplePairListPopupWindow<F,S>

这次使用Pair<F,S>实现一个简单的SimplePairListPopupWindow,还是为了快速迭代,谅解

import java.util.ArrayList;

import android.content.Context;
import android.util.Pair;
import android.view.View;
import android.widget.AdapterView;
import android.widget.LinearLayout.LayoutParams;
import android.widget.ListView;
import android.widget.PopupWindow;
import android.widget.TextView;

import com.mb.bgfitting.App;
import com.mb.bgfitting.CommonAdapter;
import com.mb.bgfitting.ViewHolder;
import com.mb.bgfitting.app.R;

/**
 * 
 * @author pythoner
 * 
 */
public class SimplePairListPopupWindow<F,S> extends PopupWindow {

	private Context context;
	private CommonAdapter<Pair<F,S>> adapter;
	private ArrayList<Pair<F,S>> beans;
	public SimplePairListPopupWindow(Context context, View view, int width,ArrayList<Pair<F,S>> b) {
		super(view, width, LayoutParams.WRAP_CONTENT, true);
		this.context = context;
		this.beans = b;
		this.setBackgroundDrawable(App.res.getDrawable(R.drawable.bg_popupwindow));
		this.setOutsideTouchable(true);
		this.setAnimationStyle(android.R.style.Animation_Dialog);
		// this.update();
		// this.setTouchable(true);
		// this.setFocusable(false);

		ListView listView = (ListView) view.findViewById(R.id.listView);
		listView.setAdapter(adapter = new CommonAdapter<Pair<F,S>>(context, beans,R.layout.item_for_popupwindow_simple) {
			@Override
			public void setValues(ViewHolder helper, Pair<F,S> item, int position) {
				helper.setText(R.id.item_0, item.second.toString());
			}
		});

		listView.setOnItemClickListener(new ListView.OnItemClickListener() {

			@Override
			public void onItemClick(AdapterView<?> pearnt, View view,
					int position, long id) {
				// TODO Auto-generated method stub
				dismiss();
				if (onItemClickListener != null) {
					onItemClickListener.onItemClick(position,beans.get(position));
				}
			}
		});

	}

	public interface OnItemClickListener<F,S> {
		void onItemClick(int position, Pair<F,S> pair);
	}

	OnItemClickListener<F,S> onItemClickListener;

	public void setOnItemClickListener(OnItemClickListener<F,S> onItemClickListener) {
		this.onItemClickListener = onItemClickListener;
	}

}






用法:
private void showSimplePopupWindow(View v){
		ArrayList<Pair<Integer, String>> beans = new ArrayList<Pair<Integer, String>>();
		beans.add(new Pair<Integer, String>(0, "当天未完成"));
		beans.add(new Pair<Integer, String>(1, "当天全部"));
		beans.add(new Pair<Integer, String>(2, "当天自己"));
		beans.add(new Pair<Integer, String>(3, "历史查询"));
		beans.add(new Pair<Integer, String>(4, "交易查询"));
		
		View view = LayoutInflater.from(context).inflate(R.layout.popupwindow_simple, null);
		final SimplePairListPopupWindow<Integer, String> popupWindow = new SimplePairListPopupWindow<Integer, String>(context,view, (int)App.res.getDimension(R.dimen.popupwindow_width), beans);
		popupWindow.showAsDropDown(v, 0, 0);
		popupWindow.setOnItemClickListener(new SimplePairListPopupWindow.OnItemClickListener<Integer, String>() {

			@Override
			public void onItemClick(int position, Pair<Integer, String> pair) {
				// TODO Auto-generated method stub
				
			}
		});
	}

猜你喜欢

转载自gundumw100.iteye.com/blog/2220798
今日推荐