Android 之PopupWindow弹出下拉列表
来源:互联网 发布:mac excel好用吗 编辑:程序博客网 时间:2024/05/17 08:27
1. 首先看看main.xml布局:<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#22000000" > <RelativeLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="30dp" android:layout_centerHorizontal="true" > <EditText android:id="@+id/et_text" android:layout_width="150dp" android:layout_height="40dp" android:singleLine="true" android:paddingRight="30dp" /> <ImageView android:id="@+id/iv_select" android:layout_alignRight="@+id/et_text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/select" android:layout_centerVertical="true" android:layout_marginRight="5dp" android:layout_marginTop="35dp" /> </RelativeLayout></RelativeLayout>
- 看看Activity怎么实现的吧:
public class MainActivity extends Activity implements OnClickListener{
private EditText et_text;private ImageView iv_select;private TextView tv_number;private ImageView iv_delete;private MyAdapter adapter;private List<String> list=new ArrayList<String>();private android.widget.ListView listView;//默认为像素值pxprivate int pwHeight=300;private PopupWindow window; @Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.activity_main); et_text = (EditText) findViewById(R.id.et_text); iv_select = (ImageView) findViewById(R.id.iv_select); initListener(); initData();}/** * 初始化数据 */private void initData() { for (int i = 0; i <15; i++) { list.add(90000+i+""); } ListView();}//创建ListViewprivate void ListView(){ listView = new android.widget.ListView(this); //隐藏滚动条 listView.setVerticalScrollBarEnabled(false); adapter=new MyAdapter(); listView.setAdapter(adapter); //设置listview的点击事件 listView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { et_text.setText(list.get(position)); window.dismiss(); } });}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 View view=View.inflate(MainActivity.this,R.layout.adapter,null); tv_number = (TextView) view.findViewById(R.id.tv_number); iv_delete = (ImageView) view.findViewById(R.id.iv_delete); tv_number.setText(list.get(position)); iv_delete.setOnClickListener(new OnClickListener() { //删除事件 @Override public void onClick(View v) { list.remove(position); //更新adapter notifyDataSetChanged(); int height=view.getHeight()*list.size(); if(height>pwHeight){ height=pwHeight; }else{ height=view.getHeight()*list.size(); } window.update(et_text.getWidth(), height); if(list.size()==0){ window.dismiss(); } } }); return view; }}/** * 初始化事件 */private void initListener() { iv_select.setOnClickListener(this);}@Overridepublic void onClick(View v) { switch (v.getId()) { case R.id.iv_select: showNumList(); break; default: break; }}/** * 将ListView的数据显示到列表中 * 第一个参数:是listView * 第二个参数:PopupWindow的宽度,和EditText的宽度一致 * 第三个参数:设置固定的高度 */private void showNumList() { if(window==null){ //创建PopupWindow window = new PopupWindow(listView,et_text.getWidth(), pwHeight); } window.setFocusable(true); //设置背景图片 window.setBackgroundDrawable(new BitmapDrawable()); //设置外部点击消失 window.setOutsideTouchable(true); window.showAsDropDown(et_text);}
}
看看效果图:
猛戳这里:eclipse点击下载
0 0
- Android 之PopupWindow弹出下拉列表
- Android 之PopupWindow弹出下拉列表
- Android 下拉列表之PopupWindow
- Android 下拉列表之PopupWindow
- Android 下拉列表Popupwindow
- Android自定义下拉列表PopupWindow
- Android 使用PopupWindow实现下拉列表
- Android之PopupWindow弹出对话框
- Android之PopupWindow弹出对话框
- Android之PopupWindow弹出对话框
- Android之PopupWindow弹出对话框
- Android之PopupWindow弹出对话框
- Android之PopupWindow弹出对话框
- Android之PopupWindow弹出对话框
- PopupWindow下拉列表
- android利用PopupWindow实现点击工具栏弹出下拉菜单
- Android之用PopupWindow实现弹出菜单
- Android之用PopupWindow实现弹出菜单
- HDOJ 3460 Ancient Printer (字典树 + 深度遍历)
- vi编辑器使用方法(最详细)
- 需求分析之——用例图
- 简单总结修改项目中navBar和tabBar的坑
- Windows主机PING不通ubuntu虚拟机,putty连不上虚拟机的解决方法
- Android 之PopupWindow弹出下拉列表
- LA3213
- HTML5 LocalStorage 本地存储
- MPU(Memory Protection Units) 《ARM System Developer's Guide》Chapter-13
- iOS获取设备唯一标识的各种方法?IDFA、IDFV、UDID分别是什么含义?
- Spring 管理下的web项目,对Properties文件重要参数的加密解密处理
- C#4.0的dynamic用法(一)——巧用反射
- 1/29_2
- sprintf/sscanf中的一个小坑