您的位置 首页 > 德语词汇

spinner是什么意思?用法、例句?android学习,spinner

大家好,关于spinner是什么意思?用法、例句很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于android学习,spinner的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!

spinner是什么意思?用法、例句?android学习,spinner

1、下拉菜单,在任何程序里都是个很重要的东西,spinner和listview有点相似,先做个简单的例子吧。

2、在activity_main里添加spinner。

3、<Spinner\nandroid:id="@+id/spinner"\nandroid:layout_width="wrap_content"\nandroid:layout_height="wrap_content"\nandroid:layout_marginStart="4dp"\nandroid:layout_marginLeft="4dp"\nandroid:layout_marginTop="44dp"\nandroid:entries="@array/spingarr"\nandroid:background="#00ff00"\napp:layout_constraintStart_toStartOf="parent"\napp:layout_constraintTop_toTopOf="parent"/>

再在values目录下的strings.xml里添加字符数组。

4、<string-arrayname="spingarr">\n<item>北京</item>\n<item>上海</item>\n<item>广州</item>\n<item>深圳</item>\n</string-array>

这样,一个简单的spinner就设置完成了。当然需要在里面添加选择事件监听。下面的代码添加到onCreate的里面。

5、TextViewtv=findViewById(R.id.hello);//得到textView控件\nSpinnermyspinner=findViewById(R.id.spinner);//得到spinner控件\n\t\t\t\t//选择监听\nmyspinner.setOnItemSelectedListener(newAdapterView.OnItemSelectedListener(){\n@Override\npublicvoidonItemSelected(AdapterView<?>parent,Viewview,intposition,longid){\nStringstrs[]=getResources().getStringArray(R.array.spingarr);//得到字符串数组\ntv.setText("yourchoiceis"+strs[position]);//把选取的相应的项目的字符赋值给TextView。\n}\n\n@Override\npublicvoidonNothingSelected(AdapterView<?>parent){\n\n}\n});

下面再来个能实际应用的复杂一点的:

6、首先也是在activity_main里添加一个spinner组件。

7、<Spinner\nandroid:id="@+id/spinner"\nandroid:layout_width="wrap_content"\nandroid:layout_height="wrap_content"\nandroid:layout_marginStart="1dp"\nandroid:layout_marginLeft="1dp"\nandroid:layout_marginTop="10dp"\nandroid:background="#ff00ff"\napp:layout_constraintStart_toStartOf="parent"\napp:layout_constraintTop_toTopOf="parent"/>

这时,这个spinner控件里没有任何内容,内容在MainActivity里添加。

8、在添加之前,需要准备一个数据类,一个适配类。

9、publicclassPerson{\n\npublicPerson(Stringname,Stringcity,intage){\nthis.name=name;\nthis.city=city;\nthis.age=age;\n}\n\nStringname;\nStringcity;\nintage;\n\npublicStringgetName(){\nreturnname;\n}\n\npublicvoidsetName(Stringname){\nthis.name=name;\n}\n\npublicStringgetCity(){\nreturncity;\n}\n\npublicvoidsetCity(Stringcity){\nthis.city=city;\n}\n\npublicintgetAge(){\nreturnage;\n}\n\npublicvoidsetAge(intage){\nthis.age=age;\n}\n}\n

publicclassMyAdapterextendsBaseAdapter{//继承自BaseAdapter类,需要重写下面4个方法,\n//为了能把数据传进来,设置了一个数据类对象和一个上下文对象\nprivateList<Person>data;\nprivateContextcontext;\n\n//实例化对象的时候就把需的内容传进来。\npublicMyAdapter(List<Person>data,Contextcontext){\nthis.data=data;\nthis.context=context;\n}\n\n@Override\npublicintgetCount(){\nreturndata.size();\n}\n\n@Override\npublicObjectgetItem(intposition){\nreturndata.get(position);\n}\n\n@Override\npubliclonggetItemId(intposition){\nreturnposition;\n}\n\n@Override\npublicViewgetView(intposition,ViewconvertView,ViewGroupparent){\nViewHoldervh\nif(convertView==null){//如果当前没有界面对象传进来。\nvh=newViewHolder();\nLayoutInflaterlayoutInflater=LayoutInflater.from(context);\nconvertView=layoutInflater.inflate(R.layout.show_item,parent,false);//得到当前的listitem界面\nvh.tvname=convertView.findViewById(R.id.tv_name);\nvh.tvcity=convertView.findViewById(R.id.tv_city);\nvh.tvage=convertView.findViewById(R.id.tv_age);\nconvertView.setTag(vh);//标记并保存这个内部类对象。\n}else{\nvh=(ViewHolder)convertView.getTag();//取出标记的内部类对象。\n}\nvh.tvname.setText(data.get(position).getName());\nvh.tvcity.setText(data.get(position).getCity());\nvh.tvage.setText(String.valueOf(data.get(position).getAge()));//此处如果不是字符会报错\nreturnconvertView;\n}\n\t\t//设置这个内部final类,是为了减少程序重复。\nprivatefinalclassViewHolder{\nTextViewtvname;\nTextViewtvcity;\nTextViewtvage;\n}\n\n}\n

以上两个类写好了,再在onCreate里添加以下内容。

10、List<Person>personList=newArrayList<Person>();//创建类集合,\n\t\t\t\t//填充数据到类集合,\npersonList.add(newPerson("张三","上海",20));\npersonList.add(newPerson("李四","上海",32));\npersonList.add(newPerson("王五","北京",18));\npersonList.add(newPerson("赵六","广州",28));\n\t\t\t\t\n\t\t\t\tSpinnerspinner=findViewById(R.id.spinner);//得到当前的spinner对象\nspinner.setAdapter(newMyAdapter(personList,this));//新建适配类并关联到spinner对象\n\t\t\t\t//给spinner对象添加一个已选择对象的事件监听。\nspinner.setOnItemSelectedListener(newAdapterView.OnItemSelectedListener(){\n@Override\npublicvoidonItemSelected(AdapterView<?>parent,Viewview,intposition,longid){\n//通过spinner的适配对象得到当然的数据类对象\n\t\t\tPersonperson=(Person)spinner.getAdapter().getItem(position);\nLog.e("liao","onItemSelected:"+person.name+""+person.city+""+\nperson.age);\n}\n\n@Override\npublicvoidonNothingSelected(AdapterView<?>parent){\n\n}\n});

这个数据集里需要一个person类,建立一个

文章分享结束,spinner是什么意思?用法、例句和android学习,spinner的答案你都知道了吗?欢迎再次光临本站哦!

本站涵盖的内容、图片、视频等数据,部分未能与原作者取得联系。若涉及版权问题,请及时通知我们并提供相关证明材料,我们将及时予以删除!谢谢大家的理解与支持!

Copyright © 2023