基于上一篇写的SimplePairListPopupWindow

时间:2022-01-25 01:00:57


这次使用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;
}

}




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




用法:


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

}
});
}