课题=ANDROID 自定义SPINNER和其下拉窗口

合集下载

Android之Spinner用法详解

Android之Spinner用法详解

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客户端二级下拉框级联操作

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的用法

Android学习笔记_72_Spinner的用法

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 自定义Spinner

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。

列表类组件(Spinner、ListView)

列表类组件(Spinner、ListView)
super.onListItemClick(l, v, position, id); String result = l.getItemAtPosition(position).toString();// 获
取选择项的值
Toast.makeText(MainActivity.this, result, Toast.LENGTH_SHORT).show();
方法,设置footer View。 5、android:headerDividersEnabled 用于设置是否在header View后绘制分隔条,默认为true。 当设为false时,ListView将不会在各个header之间绘制
divider,否则要通过addHeaderView()方法设置header View。
ArrayAdapter<String>(this,yout.
simple_list_item_checked,ctype); listView.setAdapter(adapter);// 将适配器与ListView关联
3. 添加OnItemClickListener事件
(2)Spinner下拉列表框
如何使用Spinner 1、获取Spinner对象 2、创建Adapter
3、为Spinner对象设置Adaper
4、为Spinner对象设置监听器 创建Adapter分为两步: 1、新建Adapter对象inner对象 通过Acitivity.findViewById(int id)获取 2、创建Adapter 3个参数: Context上下文关系,属于哪个应用程序 textViewResourceId,TextView的ID 向列表中添加数据,静态的String数组,或者动态的数组 List<String> 3、为Adapter设置下拉视图资源 ArrayAdapter.setDropDownViewResource(int resource)方法设置 4、为Spinner对象设置Adapter AbsSpinner.setAdapter(SpinnerAdapter adapter)将Spinner和 SpinnerAdapter关联 5、为Spinner对象设置监听器 添加监听事件

Android Spinner的三种编写方法详解

Android  Spinner的三种编写方法详解

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的简单用法。

AndroidSpinner的简单用法。

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(下拉框)控件的使用详解

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(下拉框)控件的使⽤详解,希望对⼤家有所帮助,如果⼤家有任何疑问请给我留⾔,⼩编会及时回复⼤家的。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档