spinner的使用详解

来源:互联网 发布:joo yeon seo 编辑:程序博客网 时间:2024/05/23 02:04

step1.创建anim文件夹在res目录下,添加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"
      >
      <!-- 位置转换动画效果 -->
  </translate>  
  <alpha 
      android:fromAlpha="3.0"
      android:toAlpha="6.0"
      android:duration="300"
      />
  <!-- 透明度转换动画效果 -->


</set>


step2:在res/layout下创建myspiner_dropdown.xml文件创建下拉菜单spinner显示样式

<?xml version="1.0" encoding="utf-8"?>
<TextView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/text1"
    android:layout_width="wrap_content"
    android:layout_height="24sp"
    android:singleLine="true"
    style="?android:attr/spinnerDropDownItemStyle"
   />


step3在res/layout下activity_main.xml中中编写如下代码

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/widget28"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" 
    android:orientation="vertical"
    >


    <TextView
        android:id="@+id/TextView_Show"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="你 选择的是"
       android:textSize="25sp">
</TextView>

    <Spinner 
        android:id="@+id/spinner_City"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        
        />
</LinearLayout>


step4.编写如下java代码


package com.example.testdemos;


import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.view.Menu;
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 MainActivity extends Activity {
private static final String[] countriesStr={"北京市","上海市 ","天津市","重庆市"};
private TextView myTextView;
private Spinner mySpinner;
private ArrayAdapter<String> adapter;
Animation myAnimation;


    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
       /* AlertDialog.Builder myBuilder=new AlertDialog.Builder(this);
        myBuilder.setTitle("android提示");
        myBuilder.setMessage("alertDialog.builder提示");
        myBuilder.show();*/
        
        myTextView=(TextView) findViewById(R.id.TextView_Show);
        mySpinner=(Spinner) findViewById(R.id.spinner_City);
        //取得Animation定义在res/anim目录 下
        myAnimation=AnimationUtils.loadAnimation(this, R.anim.my_anim);
        adapter=new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,countriesStr);
        //myspinner-dropdown为自定义下拉菜单样式定义在res/layout目录下
        adapter.setDropDownViewResource(R.layout.myspinner_dropdown);
        //将ArrayAdapter添加Spinner对象中
        mySpinner.setAdapter(adapter);
        
        /*下拉菜单弹出的内容选项被选中事件处理*/
        mySpinner.setOnItemSelectedListener(new Spinner.OnItemSelectedListener(){


public void onItemSelected(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
//将所选mySpinner的值带人myTextview中
myTextView.setText("你选中的是:"+countriesStr[arg2]);
/*将mySpinner显示*/
arg0.setVisibility(View.VISIBLE);
}


public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
myTextView.setText("NONE");
}});
        /*下拉菜单弹出的内容选项,触屏事件处理*/
        mySpinner.setOnTouchListener(new Spinner.OnTouchListener(){


public boolean onTouch(View v, MotionEvent event) {
/*将mySpinner运行Animation*/
v.startAnimation(myAnimation);
/*将mySpinner隐藏*/
v.setVisibility(View.INVISIBLE);
return false;
}});
        /*下拉菜单弹出的内容选项 焦点改变事件处理*/
        mySpinner.setOnFocusChangeListener(new Spinner.OnFocusChangeListener(){


public void onFocusChange(View v, boolean hasFocus) {
// TODO Auto-generated method stub


}});
    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }
}


原创粉丝点击