课题=ANDROID 自定义SPINNER和其下拉窗口
- 格式:docx
- 大小:15.38 KB
- 文档页数:1
Android之Spinner⽤法详解⽬录⼀、Spinner的两种展⽰样式⼆、Spinner相关⽅法三、Spinner⽤法举例XML布局⽂件activity_main.xml选中⽂字样式item_select.xml列表其他⽂字样式item_dropdown.xmlJava代码MainActivity.java四、dropdown模式下的列表分割线⼀、Spinner的两种展⽰样式下拉列表的展⽰⽅式有两种,⼀种是在当前下拉框的正下⽅展⽰列表,此时把spinnerMode属性设置为dropdown;另⼀种是在页⾯中部以对话框形式展⽰列表,此时把SpinnerMode属性设置为dialog。
⼆、Spinner相关⽅法setPrompt:设置标题⽂字。
setAdapter:设置下拉列表的适配器。
setSelection:设置当前选中哪项。
注意该⽅法要在setAdapter⽅法之后调⽤。
setOnItemSelectedListener:设置下拉列表的选择监听器,该监听器要实现接⼝OnItemSelectedListener。
三、Spinner⽤法举例XML布局⽂件activity_main.xml<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><Spinnerandroid:layout_width="200dp"android:id="@+id/spinner"android:layout_height="wrap_content"android:layout_gravity="center_horizontal"android:spinnerMode="dropdown"android:dropDownVerticalOffset="45dp"android:background="@null"/></LinearLayout>选中⽂字样式item_select.xml<?xml version="1.0" encoding="utf-8"?><TextView xmlns:android="/apk/res/android"android:layout_width="match_parent"android:layout_height="45dp"android:background="@android:color/holo_blue_dark"android:textSize="14sp"android:textColor="@android:color/holo_red_light"android:gravity="center"/>列表其他⽂字样式item_dropdown.xml<?xml version="1.0" encoding="utf-8"?><TextView xmlns:android="/apk/res/android"android:layout_width="match_parent"android:layout_height="45dp"android:textColor="@android:color/black"android:textSize="14sp"android:gravity="center"/>Java代码MainActivity.javapublic class MainActivity extends AppCompatActivity{private String[] starArray = {"⽔星","⾦星","地球","⽕星","⽊星","⼟星"};@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.activity_main);initSpinner();}private void initSpinner(){//声明⼀个下拉列表的数组适配器ArrayAdapter<String> starAdapter = new ArrayAdapter<String>(this,yout.item_select,starArray);//设置数组适配器的布局样式starAdapter.setDropDownViewResource(yout.item_dropdown);//从布局⽂件中获取名叫sp_dialog的下拉框Spinner sp = findViewById(R.id.spinner);//设置下拉框的标题,不设置就没有难看的标题了sp.setPrompt("请选择⾏星");//设置下拉框的数组适配器sp.setAdapter(starAdapter);//设置下拉框默认的显⽰第⼀项sp.setSelection(0);//给下拉框设置选择监听器,⼀旦⽤户选中某⼀项,就触发监听器的onItemSelected⽅法sp.setOnItemSelectedListener(new MySelectedListener());}class MySelectedListener implements AdapterView.OnItemSelectedListener{@Overridepublic void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {Toast.makeText(MainActivity.this,"您选择的是:"+starArray[i],Toast.LENGTH_SHORT).show();}@Overridepublic void onNothingSelected(AdapterView<?> adapterView) {}}}四、dropdown模式下的列表分割线只需要在style中添加如下代码即可添加样式<style name="XSpinnerStyle" parent="android:Widget.ListView.DropDown"><!-- 分隔线颜⾊ --><item name="android:divider">#000000</item><item name="android:dividerHeight">1dp</item></style>然后在AppTheme中调⽤<item name="android:dropDownListViewStyle">@style/XSpinnerStyle</item>但注意,该分割线只有是dropdown样式时才会显⽰到此这篇关于Android之Spinner⽤法详解的⽂章就介绍到这了,更多相关Android之Spinner⽤法内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!。
android客户端⼆级下拉框级联操作在项⽬中,为了提⾼⽤户的体验效果,我们会⽤到级联操作,在android中关于下拉框的级联操作,我们可以使⽤Spinner。
关于Spinner,来⾃官⽅⽂档是这样介绍的:A view that displays one child at a time and lets the user pick among them. The items in the Spinner come from the associatedwith this view。
简⽽⾔之就是is a widget similar to a drop-down list for selecting items.这次项⽬中的需求是这样的,⽤户选择⼀个城市,⼆级下拉框⾃动获取该城市下的所有区/县,下⾯分布讲解。
1. 对于android应⽤程序⽽⾔,布局时是不可缺少的,很重要,就在第⼀点来讲,采⽤两个LinearLayout布局,第⼀个LinearLayout采⽤垂直⽅向总体布局,第⼆个LinearLayout采⽤⽔平⽅向对说明信息进⾏⼦节点布局View Code2. 这⾥主要在Activity中对布局⽂件进⾏操作。
1. 对⼀些信息的声明://市区/⼦菜单项信息private String[][] areaData = CityCountry.areaData;private ArrayAdapter<CharSequence> adapterArea = null;//spinner城市private Spinner mCity = null;//spinner县区private Spinner mCountry = null;2. 获得Spinner对象:// spinner下拉列表框⼆级菜单级联mCity = (Spinner) super.findViewById(R.id.city);mCountry = (Spinner) super.findViewById(R.id.area);3. 注册Spinner setOnItemSelectedListener监听事件:mCity.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener(){@Overridepublic void onItemSelected(AdapterView<?> arg0, View arg1, int position, long arg3){// 表⽰选项改变的时候触发MppspPhoneAlarmAct.this.adapterArea = new ArrayAdapter<CharSequence>(MppspPhoneAlarmAct.this,// 定义所有的列表项yout.simple_spinner_item, MppspPhoneAlarmAct.this.areaData[position]);// 设置⼆级下拉列表的选项内容MppspPhoneAlarmAct.this.mCountry.setAdapter(MppspPhoneAlarmAct.this.adapterArea);}@Overridepublic void onNothingSelected(AdapterView<?> arg0){}});3. 部分效果图如下:。
Android学习笔记_72_Spinner的⽤法⼀、普通1、<?xml version="1.0" encoding="utf-8"?><TextView xmlns:android="/apk/res/android"android:id="@android:id/text1"android:layout_width="match_parent"android:layout_height="wrap_content"android:ellipsize="marquee"android:gravity="left"android:paddingLeft="8dip"android:singleLine="true"android:textSize="12sp"android:textStyle="bold"android:textColor="@color/gsdk_black"android:text="sdf"/>2private String[] method = null;ArrayAdapter<String> methodAdapter = new ArrayAdapter<String>(this,yout.simple_spinner_item, method); methodSpinner = (Spinner) findViewById(R.id.spinner_recharge_type);moneyAdapter.setDropDownViewResource(yout.select_dialog_item);methodSpinner.setAdapter(methodAdapter);⼆、⾃定义spinner:1、配置⽂件:<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="/apk/res/android"android:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"><TextViewandroid:id="@+id/tv_spinner_id"android:layout_width="60dp"android:layout_height="80dp"android:visibility="gone"/><TextViewandroid:id="@+id/tv_spinner_name"style="?android:attr/spinnerDropDownItemStyle"android:layout_width="match_parent"android:layout_height="35dip"android:gravity="center_vertical"android:paddingLeft="10dp"android:textColor="#000"android:textSize="@dimen/font_body"/></LinearLayout>2、填充数据List<Map<String, Object>> data = new ArrayList<Map<String, Object>>();for (Project project : linkedList) {Map<String, Object> map = new HashMap<String, Object>();map.put("name", project.getName());map.put("id", project.getId());data.add(map);}searchAdapter = new SimpleAdapter(PurchaseActivity.this, data,yout.purchase_search_spinner, new String[]{"id","name"},new int[]{_spinner_id,_spinner_name});searchSpinner.setAdapter(searchAdapter);3、点击事件:注意点击事件是OnItemSelectedListener⽽不是OnItemClickListener.private class SearchSpinnerItemListener implements OnItemSelectedListener{@Overridepublic void onItemSelected(AdapterView<?> parent, View view,int position, long id) {Spinner spinner = (Spinner) parent;Map<String, Object> projectMap = (Map<String, Object>) spinner.getItemAtPosition(position);int pid = Integer.valueOf(projectMap.get("id")+"");String pname = (String) projectMap.get("name");Log.i("Purchase","pid: "+pid+" pname: "+pname);}@Overridepublic void onNothingSelected(AdapterView<?> parent) {}}。
Android 自定义Spinner在Android的UI开发中,Spinner(下拉列表)总是可以用到的,一个简单的自定义Spinner制作我们只需要记住这重要的五步,一个Spinner就可以应用而生了。
(1)新建一个Android工程,名字为SpinnerTest1。
修改layout下的main.xml,添加一个Textview和一个Spinner,文件内容如下:Java代码1<?xmlversion="1.0"encoding="utf-8"?>23<LinearLayout4567android:layout_width="fill_parent"89android:layout_height="fill_parent"1011android:orientation="vertical"1213xmlns:andro>1415<TextView1617android:layout_width="fill_parent"1819android:layout_height="wrap_content"2021android:text="你选择的是"2223android:textSize="25sp">2425</TextView>2627<Spinner2829android:layout_width="fill_parent"3031android:layout_height="wrap_content">3233</Spinner>3435<!--定义一个下拉菜单-->3637</LinearLayout>(2)修改你的SpinnerTest1类,在这里我们就要记住五步来自定义一个Spinner了,完整代码及五步注释如下:Java代码38packageeoe.spinner;39404142importjava.util.ArrayList;4344importjava.util.List;4546importandroid.app.Activity;4748importandroid.os.Bundle;4950importandroid.view.MotionEvent;5152importandroid.view.View;5354importandroid.view.View.OnTouchListener;5556importandroid.view.animation.Animation;5758importandroid.view.animation.AnimationUtils;5960importandroid.widget.AdapterView;6162importandroid.widget.ArrayAdapter;6364importandroid.widget.Spinner;6566importandroid.widget.TextView;67686970publicclassSpinnerTest1extendsActivity{7172/**Calledwhentheactivityisfirstcreated.*/737475767778privateList<String>list=newArrayList<String>();80privateTextViewmyTextView;8182privateSpinnermySpinner;8384privateArrayAdapter<String>adapter;8586privateAnimationmyAnimation;87888990@Override9192publicvoidonCreate(BundlesavedInstanceState){9394super.onCreate(savedInstanceState);9596setContentView(yout.main);9798//第一步:添加一个下拉列表项的list,这里添加的项就是下拉列表的菜单项99100list.add("北京");101102list.add("上海");103104list.add("深圳");105106list.add("南京");107108list.add("重庆");109110111112myTextView=(TextView)findView ById(R.id.TextView_Show);113114mySpinner=(Spinner)findView ById(R.id.spinner_City);115116//第二步:为下拉列表定义一个适配器,这里就用到里前面定义的list。
Android Spinner的三种编写方法详解例子一:Spinner的基本实现方法步骤一:编写Android XML文件<LinearLayout …… ><TextView android:id="@+id/spinner_label" ……/><!-- 经过我们的测试android:drawSelectorOnTop="true | false"不起作用,因此此参数可以不设置--><Spinner android:id="@+id/spinner"android:layout_width="fill_parent"android:layout_height="wrap_content" /></LinearLayout>步骤二:源代码1)设置Spinner之中的元素内容,采用了ArrayAdapter来描述,并通过setApdater()来设置adapterprivate String[] items= {"lorem", "ipsum", "dolor", "sit", "amet",….ArrayAdapter<String> aa = newArrayAdapter<String>(this,yout.simple_spinner_item,items); //第二个参数表示spinner没有展开前的UI类型spin.setAdapter(aa); //之前已经通过Spinner spin = (Spinner)findViewById(R.id.spinner);来获取spin对象2)设置spinner展开的方式,在上面,我们将通过设置ArrayAdapter的第二个参数,设置了spinner没有展开前的UI格式,simple_spinner_item是textview的label 方式,而simple_spinner_dropdown_item这是点击圆圈选择方式。
AndroidSpinner的简单⽤法。
今天学到的是spinner,就是下拉列表,这可不是ExpandListView哈。
闲话不解释。
这是控件,所以先上布局:就不上线性布局了,基本上可以总结出,控件都得在布局⾥写,写之前嵌个布局就⾏。
<Spinner android:layout_height="wrap_content" android:layout_width="match_parent" android:entries="@array/spinner_arr" 这边介绍下,这是下拉列表的各个列表的数据,这是给第⼆个简单的列表写法⽤的,我们现在讲的是⾃⼰写⾃⼰的列表数据 android:prompt="@string/spinner_prompt" 这个是下拉列表的标题,不能在这直接写字符串,得到Values⾥的string⾥写好,再调⽤ android:spinnerMode="dialog" 有两种⽅式,dialog和dropdown,⼀个是对话框,⼀个是下拉框。
android:id="@+id/sp1"/>这个是在Values⾥头创建的⼀个array:<?xml version="1.0" encoding="UTF-8"?>-<resources>-<string-array name="spinner_arr"><item>星期⼀</item><item>星期⼆</item><item>星期三</item><item>星期四</item><item>星期五</item><item>星期六</item><item>星期⽇</item></string-array></resources>然后这边就先在drawable⾥创建⼏张图⽚再搞个布局来给下拉列表⾥的列表这边和ExpandListView差不多,我们得写个适配器,会不会奇怪,为啥List有个Person。
Android中Spinner(下拉框)控件的使⽤详解android给我们提供了⼀个spinner控件,这个控件主要就是⼀个列表,那么我们就来说说这个控件吧,这个控件在以前的也看见过,但今天还是从新介绍⼀遍吧。
Spinner位于 android.widget包下,每次只显⽰⽤户选中的元素,当⽤户再次点击时,会弹出选择列表供⽤户选择,⽽选择列表中的元素同样来⾃适配器。
Spinner是View类得⼀个⼦类。
1.效果图2.创建页⾯⽂件(main.xml)<Spinnerandroid:id="@+id/spinner1"android:layout_width="match_parent"android:layout_height="wrap_content" /><TextViewandroid:id="@+id/tvResult"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="选择的⽔果" />3.创建下拉框的数据源List<String> list = new ArrayList<String>();list.add("苹果");list.add("⾹蕉");list.add("橘⼦");list.add("⾹蕉");4.创建适配器(下拉框的数据源是来⾃适配器)ArrayAdapter<String> adapter=new ArrayAdapter<String>(this, yout.simple_spinner_item,list);5.为适配器添加样式adapter.setDropDownViewResource(yout.simple_spinner_dropdown_item);系统提供的样式如下simple_spinner_dropdown_item(列表-间距较⾼⽐较好看)simple_spinner_item(列表-间距紧凑不好看)simple_list_item_checked(复选框-选中的有绿沟)simple_list_item_single_choice (单选按钮)6.向控件Spinner添加适配器Spinner sp=(Spinner) findViewById(R.id.spinner1);sp.setAdapter(adapter);释义1. setAdapter(SpinnerAdapter adapter) ,从类的继承关系上看,ArrayAdapter是SpinnerAdapter接⼝的间接实现类7.实现选择项事件(使⽤匿名类实现接⼝)sp.setOnItemSelectedListener(new OnItemSelectedListener() {// parent:为控件Spinner view:显⽰⽂字的TextView position:下拉选项的位置从0开始public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {TextView tvResult = (TextView) findViewById(Result);//获取Spinner控件的适配器ArrayAdapter<String> adapter = (ArrayAdapter<String>) parent.getAdapter();tvResult.setText(adapter.getItem(position));}//没有选中时的处理public void onNothingSelected(AdapterView<?> parent) {}});8.后台整体代码如下public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.main);List<String> list = new ArrayList<String>();list.add("苹果");list.add("⾹蕉");list.add("橘⼦");list.add("⾹蕉");ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, yout.simple_spinner_item, list);adapter.setDropDownViewResource(yout.simple_list_item_single_choice);Spinner sp = (Spinner) findViewById(R.id.spinner1);sp.setAdapter(adapter);sp.setOnItemSelectedListener(new OnItemSelectedListener() {// parent:为控件Spinner view:显⽰⽂字的TextView position:下拉选项的位置从0开始public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {TextView tvResult = (TextView) findViewById(Result);//获取Spinner控件的适配器ArrayAdapter<String> adapter = (ArrayAdapter<String>) parent.getAdapter();tvResult.setText(adapter.getItem(position));}//没有选中时的处理public void onNothingSelected(AdapterView<?> parent) {}});}以上所述是⼩编给⼤家介绍的Android中Spinner(下拉框)控件的使⽤详解,希望对⼤家有所帮助,如果⼤家有任何疑问请给我留⾔,⼩编会及时回复⼤家的。
Android之spinnerspinner:就是下拉列表,这个工程的就是创建一个下拉列表,当选择列表中的一个Item 后,就将这个Item显示在首项上。
先看看效果:layout中的main.xml文件:1.<?xml version="1.0" encoding="utf-8"?>2.<LinearLayout3. xmlns:android="/apk/res/android"4. android:orientation="vertical"5. android:layout_width="fill_parent"6. android:layout_height="fill_parent"7. >8.9. <TextView10. android:id="@+id/myText"11. android:layout_width="fill_parent"12. android:layout_height="wrap_content"13. android:text="选择你喜欢的颜色:"14. />15. //创建一个spinner,prompt就是设置下拉列表16. //的内容,我这里的内容是从values下的string.xml17. //中取得的18. <Spinner19. android:id="@+id/mySpinner"20. android:layout_width="fill_parent"21. android:layout_height="wrap_content"22. android:prompt="@string/color"23. >24.25. </Spinner>26.27.28.</LinearLayout>values中的string.xml文件:1.<?xml version="1.0" encoding="utf-8"?>2.<resources>3.4. <string name="app_name">SpinnerProject</string>5. <string name="hello_world">Hello world!</string>6. <string name="menu_settings">Settings</string>7.8. <string name="color" >选择颜色:</string>9. //这里是定义个数组,就是下拉列表中的内容,这里你可以写该成你自己的选项10. <string-array name="colors">11. <item>黑色 | Black</item>12. <item>白色 | White</item>13. <item>灰色 | gray</item>14. <item>绿色 | green</item>15. <item>红色 | red</item>16. <item>蓝色 | blue</item>17. <item>粉色 | Pink</item>18. </string-array>19.</resources>Activaty.java文件:1.package com.cheng.spinnerproject;2.3.import android.os.Bundle;4.import android.R.string;5.import android.app.Activity;6.import android.view.Menu;7.import android.view.View;8.import android.widget.AdapterView;9.import android.widget.AdapterView.OnItemSelectedListener;10.import android.widget.ArrayAdapter;11.import android.widget.Spinner;12.import android.widget.Toast;13.14.public class SpinnerActivaty extends Activity {15.16. private Spinner mSpinner;17. @Override18. protected void onCreate(Bundle savedInstanceState) {19. super.onCreate(savedInstanceState);20. super.setContentView(yout.main);21. //得到在xml文件中定义的spinner22. mSpinner = (Spinner)findViewById(R.id.mySpinner);23. //准备一个数组适配器,这里的样式是使用系统的样式24. ArrayAdapter adapter = ArrayAdapter.createFromResource(SpinnerActivaty.this, R.array.colors, yout.select_dialog_item);25. //设置下拉列表的样式26. adapter.setDropDownViewResource(yout.simple_spinner_dropdown_item);27. //为下拉列表设置适配器28. mSpinner.setAdapter(adapter);29.30. //定义元素选择监听器31. OnItemSelectedListener oisl = new OnItemSelectedListener() {32.33. @Override34. public void onItemSelected(AdapterView<?> parent, View view,35. int position, long id) {36. // TODO Auto-generated method stub37. //当选择了一个Item之后,我们用一个Toast将选择的信息显示出来38. Toast.makeText(SpinnerActivaty.this, "selected"+parent.getItemAtPosition(position).toString(), Toast.LENGTH_LONG).show() ;39. }40.41. @Override42. public void onNothingSelected(AdapterView<?> arg0) {43. // TODO Auto-generated method stub44.45. }46. };47. //为下拉列表绑定事件监听器48. mSpinner.setOnItemSelectedListener(oisl);49. }50.51. @Override52. public boolean onCreateOptionsMenu(Menu menu) {53. // Inflate the menu; this adds items to the action bar if itis present.54. getMenuInflater().inflate(R.menu.main, menu);55. return true;56. }57.58.}。
第一部分 Android基础界面控件一、回顾上节课知识,继续讲解Android基础界面控件(1)对上节课留的知识进行答疑(2)进入本节课本节课主题,讲解Android高级界面控件图片控件Android界面美观离不开图片控件,ImageView是视图控件,它继承自View,其功能是在屏幕中显示图像。
常见基本图片控件ImageView,ImageButton,ImageSwicher。
(3)明确学习目标熟练掌握ImageView,ImageButton,ImageSwicher的用法。
二、重点知识讲解(1)老师创建情境,引入ImageView组件。
①演示显示图片项目,提出问题Android界面如何呈现一张图片?图片在项目中放在哪里?②图片存放在drawable文件夹③android:src属性指定图片来源,值为@drawable/***。
④分析android:scaleType属性⑤老师操作演示android:scaleType显示效果(2)ImageButton图片按钮①分析图片按钮。
②提出问题:如果想要在按钮上达到既有图片又有文字的效果,应该怎么做呢?让学生讨论。
③分析ImageButton中src和background的区别。
④在XML文件中采用selector标签,定义自定义图片。
⑤老师操作演示使3种不同方式实现图片监听⑥提出问题图片控件灰色背景如何去掉白色?⑦分析讲解颜色值的表示方法:#ARGB、#AARRGGBB、#RGB、#RRGGBB(3)图片切换器ImageSwitcher①演示项目图片切换项目。
②分析ImageSwitcher实现图片实现原理。
③老师操作演示ImageSwitcher图片切换器(4)项目完成演示。
老师引导学生分析“竞赛登陆”布局、控件摆放、涉及控件属性等(4)上机训练。
ImageView、ImageButton、ImageSwitcher案例项目。
(5)学生掌握检查。