Android中使用Spinner实现下拉列表功能
程序员文章站
2023-11-13 13:05:10
spinner
spinner是一个列表选择框,会在用户选择后,展示一个列表供用户进行选择。spinner是viewgroup的间接子类,它和其他的android控件...
spinner
spinner是一个列表选择框,会在用户选择后,展示一个列表供用户进行选择。spinner是viewgroup的间接子类,它和其他的android控件一样,数据需要使用adapter进行封装。
1,demo展示图片
2,布局代码
//(layout)activity_main <linearlayout 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:orientation="vertical" tools:context="com.test.spinner.mainactivity"> <linearlayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <textview android:textsize="20sp" android:layout_margin="10dp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="今年的常规赛mvp:"/> <textview android:id="@+id/text" android:textsize="20sp" android:layout_margintop="10dp" android:layout_width="wrap_content" android:layout_height="wrap_content"/> </linearlayout> <spinner android:visibility="gone" android:id="@+id/spinner" android:layout_marginleft="10dp" android:layout_width="wrap_content" android:layout_height="wrap_content"> </spinner> </linearlayout> ------------------------------------------------------------------- //(layout)item <linearlayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center_vertical"> <imageview android:id="@+id/imageview" android:layout_width="80dp" android:layout_height="80dp"/> <textview android:id="@+id/textview" android:layout_marginleft="20dp" android:layout_width="wrap_content" android:layout_height="wrap_content"/> </linearlayout>
3,activity代码
//mainactivity import android.content.context; import android.os.bundle; import android.support.v7.app.appcompatactivity; import android.view.menu; import android.view.menuitem; import android.view.view; import android.widget.adapterview; import android.widget.arrayadapter; import android.widget.simpleadapter; import android.widget.spinner; import android.widget.textview; import java.util.arraylist; import java.util.hashmap; import java.util.list; import java.util.map; import static com.test.spinner.r.id.simpleadapter; public class mainactivity extends appcompatactivity { private context mcontext = mainactivity.this; private spinner mspinner; private arrayadapter<string> marrayadapter; private textview mtextview; private simpleadapter msimpleadapter; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); initview(); initdata(); } private void initview(){ mspinner = (spinner) findviewbyid(r.id.spinner); mtextview = (textview) findviewbyid(r.id.text); } private void initdata(){ // 设置数据集 list<string> list = new arraylist<>(); list.add("哈登"); list.add("莱昂纳德"); list.add("詹姆斯"); list.add("威斯布鲁克"); list<map<string ,object>> maps = new arraylist<>(); int[] icon = {r.mipmap.pic1 , r.mipmap.pic2, r.mipmap.pic3, r.mipmap.pic4}; string[] iconname = {"哈登" , "莱昂纳德" , "詹姆斯" , "威斯布鲁克"}; // 设置适配器 marrayadapter = new arrayadapter<>(mcontext , android.r.layout.simple_spinner_item , list); marrayadapter.setdropdownviewresource(android.r.layout.simple_spinner_dropdown_item); msimpleadapter = new simpleadapter(mcontext, maps , r.layout.item , new string[]{"image" , "text"} , new int[]{r.id.imageview ,r.id.textview}); for(int i = 0 ; i < icon.length ; i++){ map<string ,object> map = new hashmap<>(); map.put("image", icon[i]); map.put("text" , iconname[i]); maps.add(map); } } @override public boolean oncreateoptionsmenu(menu menu) { getmenuinflater().inflate(r.menu.main , menu); return true; } @override public boolean onoptionsitemselected(menuitem item) { switch (item.getitemid()){ case r.id.arrayadapter: mspinner.setvisibility(view.visible); mspinner.setadapter(marrayadapter); // 设置监听器 mspinner.setonitemselectedlistener(new adapterview.onitemselectedlistener() { @override public void onitemselected(adapterview<?> adapterview, view view, int position, long id) { mtextview.settext(marrayadapter.getitem(position)); } @override public void onnothingselected(adapterview<?> adapterview) { } }); break; case simpleadapter: mspinner.setvisibility(view.visible); mspinner.setadapter(msimpleadapter); // 设置监听器 mspinner.setonitemselectedlistener(new adapterview.onitemselectedlistener() { @override public void onitemselected(adapterview<?> adapterview, view view, int position, long id) { mtextview.settext(msimpleadapter.getitem(position)+""); } @override public void onnothingselected(adapterview<?> adapterview) { } }); break; default: break; } return super.onoptionsitemselected(item); } }
以上所述是小编给大家介绍的android中使用spinner实现下拉列表功能,希望对大家有所帮助
下一篇: PHP设计模式之代理模式的深入解析
推荐阅读
-
Android中使用Spinner实现下拉列表功能
-
Android自定义Spinner下拉列表(使用ArrayAdapter和自定义Adapter实现)
-
Android下拉列表(Spinner)效果(使用C#和Java分别实现)
-
使用UItableview在iOS应用开发中实现好友列表功能
-
Android使用AlertDialog实现的信息列表单选、多选对话框功能
-
Android实现多级列表中的新建功能
-
Android使用Spinner控件实现下拉列表的案例
-
Android中PopuWindow实现下拉列表实例
-
Android实现三级联动下拉框 下拉列表spinner的实例代码
-
使用Java代码在Android中实现图片裁剪功能