Android学习(三)Spinner实现
16lz
2021-01-23
1.创建一个spinner对象
2.创建一个适配器 adapter (spinner)
3.adapter选择spinner样式
4.spinner得到adapter
5.spinner添加OnItemSelectedListener
6.spinner设置SetOnTouchListener
SpinnerActivity.java
- package com.luwenjie.android;
- import android.app.Activity;
- import android.os.Bundle;
- import android.view.MotionEvent;
- import android.view.View;
- import android.view.animation.Animation;
- import android.view.animation.AnimationUtils;
- import android.widget.AdapterView;
- import android.widget.ArrayAdapter;
- import android.widget.Spinner;
- import android.widget.TextView;
- public class SpinnerActivity extends Activity{
- private static final String[] countriesStr = {"北京","上海","天津","重庆","南京"};
- private TextView tv;
- private Spinner spinner;
- private ArrayAdapter
adapter; - private Animation myAnimation;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- // TODO Auto-generated method stub
- super.onCreate(savedInstanceState);
- setContentView(R.layout.spinner);
- tv = (TextView)findViewById(R.id.spText);
- spinner = (Spinner)findViewById(R.id.spinner);
- adapter = new ArrayAdapter
( this,android.R.layout.simple_spinner_item,countriesStr);- //自定义下拉菜单样式
- adapter.setDropDownViewResource(R.layout.myspinner_dropdown);
- //将Array添加Spinner对象中
- spinner.setAdapter(adapter);
- //将spinner添加OnItemSelectedListener
- spinner.setOnItemSelectedListener(new Spinner.OnItemSelectedListener(){
- @Override
- public void onItemSelected(AdapterView<?> arg0, View view,
- int position, long id) {
- //将所选spinner的值带入tv中
- tv.setText("选择的是:" + countriesStr[position]);
- //view.setVisibility(View.VISIBLE);
- }
- @Override
- public void onNothingSelected(AdapterView<?> arg0) {
- // TODO Auto-generated method stub
- }
- });
- //取得Animation 定义在res/anim目录下
- myAnimation = AnimationUtils.loadAnimation(this, R.anim.my_anim);
- //将spinner添加OntouchListener
- spinner.setOnTouchListener(new Spinner.OnTouchListener(){
- @Override
- public boolean onTouch(View v, MotionEvent event) {
- //将spinner 运行 animation
- spinner.startAnimation(myAnimation);
- //将spinner隐藏
- //spinner.setVisibility(View.INVISIBLE);
- return false;
- }
- });
- spinner.setOnFocusChangeListener(new Spinner.OnFocusChangeListener(){
- @Override
- public void onFocusChange(View v, boolean hasFocus) {
- // TODO Auto-generated method stub
- }
- });
- }
- }
res/anim/my_anim.xml
- <?xml version="1.0" encoding="utf-8"?>
- <set
- xmlns:android="http://schemas.android.com/apk/res/android">
- <translate
- android:fromXDelta="0"
- android:toXDelta="-100%p"
- android:duration="300"
- />
- <alpha
- android:fromAlpha="1.0"
- android:toAlpha="0.0"
- android:duration="300"
- />
- set>
res/layout/spinner.xml
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:orientation="vertical" >
- <TextView
- android:id="@+id/spText"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- />
- <Spinner
- android:id="@+id/spinner"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- />
- LinearLayout>
更多相关文章
- Android 自定义Dialog样式
- Dialog样式
- Android Material Design按钮样式设计
- 【android】解决自定义样式progressbar的进度显示问题
- android:为TextView添加样式——下划线,颜色,设置链接样式及前背景
- Android文本样式——上
- Android —— 禁止转向、简单外部样式的设置
- React Native如何适配iOS \ Android样式
- android中listview的一些样式设置(关键点集合)