Android下拉框PopupWindow使用详解

Android下拉框PopupWindow使用详解,第1张

概述本文实例为大家分享了Android下拉框PopupWindow展示的具体代码,供大家参考,具体内容如下

本文实例为大家分享了AndroID下拉框PopupWindow展示的具体代码,供大家参考,具体内容如下

activity_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"tools:context="com.example.spin.MainActivity" ><EditTextandroID:ID="@+ID/et_editText"androID:layout_wIDth="250dp"androID:layout_height="50dp"androID:layout_centerHorizontal="true"androID:layout_margintop="10dp"androID:text="@string/hello_world" /><ImageVIEw androID:ID="@+ID/down"androID:layout_wIDth="wrap_content"androID:layout_height="wrap_content"androID:background="@drawable/down_arrow"androID:layout_alignRight="@ID/et_editText"androID:layout_margintop="20dp"androID:clickable="true"/></relativeLayout>

List_item.xml布局

<?xml version="1.0" enCoding="utf-8"?><linearLayout xmlns:androID="http://schemas.androID.com/apk/res/androID"androID:layout_wIDth="match_parent"androID:layout_height="wrap_content"androID:gravity="center_vertical"androID:orIEntation="horizontal" ><ImageVIEw androID:layout_wIDth="wrap_content"androID:layout_height="wrap_content"androID:background="@drawable/user"/><TextVIEw androID:ID="@+ID/tv_List_item"androID:layout_wIDth="0dp"androID:layout_height="wrap_content"androID:layout_weight="1"androID:gravity="center_horizontal"androID:text="100000000"/><ImageVIEwandroID:ID="@+ID/delete"androID:layout_wIDth="wrap_content"androID:layout_height="wrap_content"androID:background="@drawable/delete"/></linearLayout>

代码实现

public class MainActivity extends ActionBaractivity {private EditText et_editText;//编辑框private ImageVIEw down;//下拉按钮private ListVIEw ListVIEw;private List<String> numList;private PopupWindow popWin; private Boolean isDown=false;//判断d窗是否显示 @OverrIDeprotected voID onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentVIEw(R.layout.activity_main); et_editText = (EditText) findVIEwByID(R.ID.et_editText);down = (ImageVIEw) findVIEwByID(R.ID.down);//创建集合 储存号码numList = new ArrayList<String>();for(int i=0;i<20;i++){numList.add("100000000"+i);} initListVIEw();//对下拉按钮设置监听 当进行点击时 d出popWindown.setonClickListener(new OnClickListener() { @OverrIDepublic voID onClick(VIEw v) {if(!isDown){//定义一个popupWindowpopWin=new PopupWindow(MainActivity.this);popWin.setWIDth(et_editText.getWIDth());//设置宽度 和编辑框的宽度相同popWin.setHeight(200); //设置高度//为popWin填充内容popWin.setContentVIEw(ListVIEw);//点击popWin区域之外 自动关闭popWinpopWin.setoutsIDetouchable(true);/*** 设置d出窗口显示的位置* 参数一:相对于参数的位置进行显示 即在编辑框的下面显示* 参数二 三:x y轴的偏移量*/popWin.showAsDropDown(et_editText,0);isDown=true;}else{popWin.dismiss();isDown=false;}}});}//点击返回按钮@OverrIDepublic voID onBackpressed() {/*** 当用户点击返回按钮时 是整个activity退出 而且给人的感觉是直接退出 窗口可能还是显示状态,为了避免内存泄露,先关闭d窗 * * 当点击返回按钮时 如果窗口存在且正在显示 则关闭窗口*/if(popWin!=null&&popWin.isShowing()){popWin.dismiss();}super.onBackpressed();}private voID initListVIEw() {ListVIEw = new ListVIEw(this);//设置ListVIEw的背景ListVIEw.setBackgroundResource(R.drawable.ListvIEw_background);//设置条目之间的分割线及滚动条不可见ListVIEw.setdivIDer(null);ListVIEw.setVerticalScrollbarEnabled(false);//设置适配器ListVIEw.setAdapter(new Mylistadapter());}private class Mylistadapter extends BaseAdapter{@OverrIDepublic int getCount() {return numList==null?0:numList.size();}@OverrIDepublic 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.tvNum=(TextVIEw) convertVIEw.findVIEwByID(R.ID.tv_List_item);holder.delete=(ImageVIEw) convertVIEw.findVIEwByID(R.ID.delete);convertVIEw.setTag(holder);}else{holder=(VIEwHolder) convertVIEw.getTag();}holder.tvNum.setText(numList.get(position));//对删除按钮设置监听事件holder.delete.setonClickListener(new OnClickListener() { @OverrIDepublic voID onClick(VIEw v) {//当点击删除按钮时 删除条目numList.remove(position);//刷新ListVIEwMylistadapter.this.notifyDataSetChanged();}});//对条目设置监听事件 点击条目后 将num设置到编辑框中convertVIEw.setonClickListener(new OnClickListener() { @OverrIDepublic voID onClick(VIEw v) {//点击条目后 将num设置到编辑框中et_editText.setText(numList.get(position));popWin.dismiss();}});return convertVIEw;}@OverrIDepublic Object getItem(int position) {return null;}@OverrIDepublic long getItemID(int position) {return 0;}}private class VIEwHolder {TextVIEw tvNum;ImageVIEw delete;}}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程小技巧。

总结

以上是内存溢出为你收集整理的Android下拉框PopupWindow使用详解全部内容,希望文章能够帮你解决Android下拉框PopupWindow使用详解所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1144073.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存