SpinerPopWindow.java
4.86 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
package com.sw.laryngoscope.popWindow;
import java.util.List;
import android.content.Context;
import android.graphics.drawable.ColorDrawable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.PopupWindow;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.sw.laryngoscope.R;
import com.sw.laryngoscope.activity.login.DeleteaccountDialog;
import com.sw.laryngoscope.activity.login.Deleteaccountlistener;
import com.sw.laryngoscope.activity.login.RemoveUserinfoListner;
import com.sw.laryngoscope.db.AccountInfoDB;
import com.sw.laryngoscope.utils.Logger;
/**
* 自定义PopupWindow 主要用来显示ListView
*
* @param <T>
* @author
* @create time 2015-11-3
*/
public class SpinerPopWindow<T> extends PopupWindow {
private static final String TAG = "SpinerPopWindow";
private LayoutInflater inflater;
private ListView mListView;
private List<T> list;
private MyAdapter mAdapter;
private Context context;
private RemoveUserinfoListner removeUserinfoListner;
public SpinerPopWindow(Context context, List<T> list, OnItemClickListener
clickListener, RemoveUserinfoListner removeUserinfoListner) {
super(context);
inflater = LayoutInflater.from(context);
this.list = list;
this.context = context;
this.removeUserinfoListner = removeUserinfoListner;
init(clickListener);
}
public void setList(List<T> list) {
this.list = list;
}
private void init(OnItemClickListener clickListener) {
//View view = inflater.inflate(R.layout.select_phonedialog, null);
View view = inflater.inflate(R.layout.dialog_select_user, null);
setContentView(view);
setFocusable(true);
//setWidth(ViewGroup.LayoutParams.WRAP_CONTENT);
setWidth((int)context.getResources().getDimension(R.dimen.dp_x_811));
setHeight(ViewGroup.LayoutParams.WRAP_CONTENT);
//ColorDrawable dw = new ColorDrawable(0x00);
//setBackgroundDrawable(dw);
mListView = view.findViewById(R.id.select_listview);
//mListView = view.findViewById(ResourceUtil.getId(context, "select_listview"));
mAdapter = new MyAdapter();
if (list != null) {
mListView.setAdapter(mAdapter);
}
mListView.setOnItemClickListener(clickListener);
mAdapter.notifyDataSetChanged();
}
private class MyAdapter extends BaseAdapter {
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int position) {
return list.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
final AccountInfoDB accountInfo = (AccountInfoDB) list.get(position);
ViewHodler hodler = null;
if (convertView == null) {
convertView = LayoutInflater.from(context).inflate(R.layout.item_select_user, null);
hodler = new ViewHodler();
hodler.phonetextview = convertView.findViewById(R.id.account_textview);
hodler.imageview = convertView.findViewById(R.id.account_image);
hodler.deleterl = convertView.findViewById(R.id.delete_account_rl);
convertView.setTag(hodler);
} else {
hodler = (ViewHodler) convertView.getTag();
}
hodler.phonetextview.setText(accountInfo.getName());
Logger.d("MyAdapter position ---- " + position);
//操作删除存在对象里面的数据刷新listview
hodler.deleterl.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// data.remove(position);
DeleteaccountDialog deleteaccountDialog = new DeleteaccountDialog(context, accountInfo.getName(),
new Deleteaccountlistener() {
@Override
public void deleteaccountsuccess() {
notifyDataSetChanged();
removeUserinfoListner.removeuserinfosuccess(position,
(List<AccountInfoDB>) list);
}
});
deleteaccountDialog.show();
}
});
return convertView;
}
public class ViewHodler {
TextView phonetextview;
ImageView imageview;
RelativeLayout deleterl;
}
}
}