PopupWindow+ListView

3341 단어
1. 타자 데이터 가져오기
for (int i = 0; i < iocOutMakeMaterialSubmit.data.size(); i++) {
dataListPopupWindow.add(iocOutMakeMaterialSubmit.data.get(i));
}
initPopupWindow();

2. 초기화
/**
* PopupWindow
*/
protected void initPopupWindow() {
LayoutInflater inflater = LayoutInflater.from(getActivity());
View contentView = inflater.inflate(R.layout.popupwindow_ioc_out_make_material_submit, null);
ListView listView = (ListView) contentView.findViewById(R.id.list_view_submit_popwin);
adapterPopupwindow = new AdapterPopupWindow(getActivity(), R.layout.item_list_ioc_out_make_material_submit, dataListPopupWindow);
listView.setAdapter(adapterPopupwindow);
//item
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView> adapterView, View view, int i, long l) {
IOCOutMakeMaterialSubmit.Data data = dataListPopupWindow.get(i);
dataList.add(data);
adapterListView.notifyDataSetChanged();
closePopupWindow();
reset();
}
});
// PopupWindow
popupWindow = new PopupWindow(contentView, LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.MATCH_PARENT, true);
popupWindow.setAnimationStyle(R.style.MenuAnimationFade);
// , ,
popupWindow.showAtLocation(submitBtn, Gravity.CENTER, 0, 0);
// ,
WindowManager.LayoutParams params = getActivity().getWindow().getAttributes();
params.alpha = 0.5f;
getActivity().getWindow().setAttributes(params);
}

3. 창 닫기
/**
*
*/
private void closePopupWindow() {
if (popupWindow != null && popupWindow.isShowing()) {
popupWindow.dismiss();
popupWindow = null;
WindowManager.LayoutParams params = getActivity().getWindow().getAttributes();
params.alpha = 1f;
getActivity().getWindow().setAttributes(params);
}
}

 4.adapter
 
/**
* popupWindow
*/
private class AdapterPopupWindow extends ArrayAdapter {
private int resourceId;

public AdapterPopupWindow(Context context, int resource, List objects) {
super(context, resource, objects);
resourceId = resource;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
IOCOutMakeMaterialSubmit.Data data = getItem(position);
convertView = LayoutInflater.from(getContext()).inflate(resourceId,
null);
((TextView) convertView.findViewById(R.id.tv_pi_in_out_no)).setText(data.pi_inoutno);
((TextView) convertView.findViewById(R.id.tv_pi_class)).setText(data.pi_class);
((TextView) convertView.findViewById(R.id.tv_pd_wh_code)).setText(data.pd_whcode);
return convertView;
}
}

전재 대상:https://www.cnblogs.com/520-1314/p/5564995.html

좋은 웹페이지 즐겨찾기