Android实现下拉展示条目效果
程序员文章站
2022-06-23 14:58:32
本文实例为大家分享了android下拉展示条目的具体代码,供大家参考,具体内容如下
布局文件
本文实例为大家分享了android下拉展示条目的具体代码,供大家参考,具体内容如下
布局文件
<?xml version="1.0" encoding="utf-8"?> <relativelayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingbottom="@dimen/activity_vertical_margin" android:paddingleft="@dimen/activity_horizontal_margin" android:paddingright="@dimen/activity_horizontal_margin" android:paddingtop="@dimen/activity_vertical_margin" android:background="#000000" tools:context="com.example.a2_.mainactivity"> <edittext android:id="@+id/et_input" android:layout_width="match_parent" android:layout_height="wrap_content" android:textcolor="#fff" android:text="请输入内容" /> <imagebutton android:padding="6dp" android:background="@null" android:layout_alignright="@id/et_input" android:id="@+id/ib" android:src="@mipmap/down_arrow" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </relativelayout>
条目布局文件
<?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:padding="5dp" android:descendantfocusability="blocksdescendants" android:orientation="horizontal"> <imageview android:src="@mipmap/user" android:id="@+id/iv_user" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <textview android:layout_weight="1" android:id="@+id/tv_data" android:text="100" android:textcolor="#000000" android:gravity="center_horizontal" android:layout_width="0dp" android:layout_height="wrap_content" /> <imagebutton android:background="@null" android:src="@mipmap/delete" android:id="@+id/iv_delete" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </linearlayout>
核心代码
package com.example.a2_; import android.graphics.drawable.colordrawable; import android.support.v7.app.appcompatactivity; import android.os.bundle; import android.view.view; import android.view.viewgroup; import android.widget.adapterview; import android.widget.baseadapter; import android.widget.edittext; import android.widget.imagebutton; import android.widget.imageview; import android.widget.listview; import android.widget.popupwindow; import android.widget.textview; import java.util.arraylist; public class mainactivity extends appcompatactivity { private edittext et_input; private popupwindow popupwindow; private listview lv_list; private arraylist<string> data; private myadapter myadapter; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); //初始化控件 et_input = (edittext) findviewbyid(r.id.et_input); imagebutton ib = (imagebutton) findviewbyid(r.id.ib); //初始化数据源 initdata(); //创建一个listview lv_list = new listview(this); //给listview设置背景 lv_list.setbackgroundresource(r.mipmap.listview_background); //给listview设置适配器 myadapter = new myadapter(); lv_list.setadapter(myadapter); //给listview设置条目点击事件 lv_list.setonitemclicklistener(new adapterview.onitemclicklistener() { @override public void onitemclick(adapterview<?> parent, view view, int position, long id) { //当点击到一个条目的时候,就把这个条目的内容显示在输入框中 et_input.settext(data.get(position)); popupwindow.dismiss(); } }); //给按钮设置点击事件 ib.setonclicklistener(new view.onclicklistener() { @override public void onclick(view v) { //当点击下拉按钮时,显示列表选项 showpopup(); } }); } //初始化数据 private void initdata() { //创建一个集合,用来存储数据 data = new arraylist<>(); //通过for循环创建数据 for (int i = 1;i<20;i++){ data.add(100+i+""); } } //显示下拉的列表条目 private void showpopup() { //创建popupwindow对象 popupwindow = new popupwindow(lv_list,et_input.getwidth(),500,true); //为了在点击列表条目之外的区域能够让列表条目隐藏,为列表条目设置一个背景 popupwindow.setbackgrounddrawable(new colordrawable()); //让列表条目显示 并指定在哪个列表条目下展示 popupwindow.showasdropdown(et_input); } //创建一个适配器 class myadapter extends baseadapter{ @override public int getcount() { return data.size(); } @override public string getitem(int position) { return data.get(position); } @override public long getitemid(int position) { return position; } @override public view getview(final int position, view convertview, viewgroup parent) { //判断convertview是否为空 if (convertview==null){ convertview = view.inflate(mainactivity.this,r.layout.lv_item,null); } //找到控件 textview tv_data = (textview) convertview.findviewbyid(r.id.tv_data); imageview iv_delete = (imageview) convertview.findviewbyid(r.id.iv_delete); //设置点击事件 iv_delete.setonclicklistener(new view.onclicklistener() { @override public void onclick(view v) { //删除集合里面的数据 data.remove(position); //刷新页面 myadapter.notifydatasetchanged(); } }); //获取数据 string data = getitem(position); //设置数据 tv_data.settext(data); return convertview; } } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
下一篇: java知识随笔整理-标量函数和表值函数