相信大家都有使用QQ的最近的登录的下拉框,点击可以显示最近登录的效果,点击选项可以将内容提交到输入框,实现快速输入数据的效果。
<span style=
"font-size:18px;"
>
package
comflyou.down.select;
import
java.util.ArrayList;
import
android.app.Activity;
import
android.os.Bundle;
import
android.renderscript.Type.CubemapFace;
import
android.view.View;
import
android.view.View.OnClickListener;
import
android.view.ViewGroup;
import
android.widget.BaseAdapter;
import
android.widget.EditText;
import
android.widget.ImageView;
import
android.widget.ListView;
import
android.widget.PopupWindow;
import
android.widget.TextView;
public
class
MainActivity
extends
Activity {
private
EditText msg;
private
ImageView image;
private
PopupWindow popupWindow;
private
ArrayList<string> dataList;
private
ListView myListview;
@Override
protected
void
onCreate(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
msg = (EditText) findViewById(R.id.tv_msg);
image = (ImageView) findViewById(R.id.iv_down_arrow);
myListview =
new
ListView(MainActivity.
this
);
popupWindow =
new
PopupWindow(getApplicationContext());
dataList =
new
ArrayList<string>();
for
(
int
i =
0
; i <
20
; i++) {
dataList.add(flyou + i);
}
init();
initListView();
}
private
void
init() {
image.setOnClickListener(
new
OnClickListener() {
@Override
public
void
onClick(View v) {
popupWindow.setWidth(msg.getWidth());
popupWindow.setHeight(
300
);
popupWindow.setContentView(myListview);
popupWindow.setOutsideTouchable(
true
);
popupWindow.showAsDropDown(msg,
0
,
0
);
}
});
}
private
void
initListView() {
myListview.setBackgroundResource(R.drawable.listview_background);
myListview.setDivider(
null
);
myListview.setVerticalScrollBarEnabled(
false
);
myListview.setAdapter(
new
MyAdapter());
}
public
class
MyAdapter
extends
BaseAdapter {
@Override
public
int
getCount() {
return
dataList.size();
}
@Override
public
Object getItem(
int
position) {
return
position;
}
@Override
public
long
getItemId(
int
position) {
return
0
;
}
@Override
public
View getView(
final
int
position, View convertView, ViewGroup parent) {
ViewHolder holder;
if
(convertView ==
null
) {
convertView = View.inflate(getApplicationContext(), R.layout.list_item,
null
);
holder =
new
ViewHolder();
holder.iv_delete = (ImageView) convertView.findViewById(R.id.iv_delete);
holder.iv_user = (ImageView) convertView.findViewById(R.id.iv_user);
holder.tv_msg=(TextView)convertView.findViewById(R.id.tv_msg);
convertView.setTag(holder);
}
else
{
holder = (ViewHolder) convertView.getTag();
}
holder.tv_msg.setText(dataList.get(position));
holder.iv_delete.setOnClickListener(
new
OnClickListener() {
@Override
public
void
onClick(View v) {
dataList.remove(position);
MyAdapter.
this
.notifyDataSetChanged();
}
});
convertView.setOnClickListener(
new
OnClickListener() {
@Override
public
void
onClick(View v) {
msg.setText(dataList.get(position));
popupWindow.dismiss();
}
});
return
convertView;
}
}
private
class
ViewHolder {
ImageView iv_delete;
TextView tv_msg;
ImageView iv_user;
}
}
</string></string></span>