您的位置:首页 > 移动开发 > Android开发

Android学习笔记 - Spinner

2015-01-28 23:50 260 查看
SpinnerActivity.java 代码。

[java] view
plaincopy

package cn.com;

import java.util.ArrayList;

import java.util.List;

import android.app.Activity;

import android.os.Bundle;

import android.view.MotionEvent;

import android.view.View;

import android.widget.AdapterView;

import android.widget.ArrayAdapter;

import android.widget.Spinner;

import android.widget.TextView;

public class SpinnerActivity extends Activity {

/** Called when the activity is first created. */

private List<String> list = new ArrayList<String>();

private TextView myTextView;

private Spinner mySpinner;

private ArrayAdapter<String> adapter;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

//第一步:添加一个下拉列表项的list,这里添加的项就是下拉列表的菜单项

list.add("北京");

list.add("上海");

list.add("深圳");

list.add("福州");

list.add("厦门");

myTextView = (TextView)findViewById(R.id.TextView_city);

mySpinner = (Spinner)findViewById(R.id.Spinner_city);

//第二步:为下拉列表定义一个适配器,这里就用到里前面定义的list。

adapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, list);

//第三步:为适配器设置下拉列表下拉时的菜单样式。

adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

//第四步:将适配器添加到下拉列表上

mySpinner.setAdapter(adapter);

//第五步:为下拉列表设置各种事件的响应,这个事响应菜单被选中

mySpinner.setOnItemSelectedListener(new Spinner.OnItemSelectedListener(){

public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) {

// TODO Auto-generated method stub

/* 将所选mySpinner 的值带入myTextView 中*/

myTextView.setText("您选择的是:"+ adapter.getItem(arg2));

/* 将mySpinner 显示*/

arg0.setVisibility(View.VISIBLE);

}

public void onNothingSelected(AdapterView<?> arg0) {

// TODO Auto-generated method stub

myTextView.setText("NONE");

arg0.setVisibility(View.VISIBLE);

}

});

/*下拉菜单弹出的内容选项触屏事件处理*/

mySpinner.setOnTouchListener(new Spinner.OnTouchListener(){

public boolean onTouch(View v, MotionEvent event) {

// TODO Auto-generated method stub

/**

*

*/

return false;

}

});

/*下拉菜单弹出的内容选项焦点改变事件处理*/

mySpinner.setOnFocusChangeListener(new Spinner.OnFocusChangeListener(){

public void onFocusChange(View v, boolean hasFocus) {

// TODO Auto-generated method stub

}

});

}

}

运行结果如下图所示:





今天学习了Spinner组件,使用Spinner相当于从下拉列表中选择项目,下面演示一下Spinner的使用(分别使用ArrayAdapter和自定义Adapter实现)

(一):使用ArrayAdapter进行适配数据:

①:首先定义一个布局文件:

?
【注意:】上面的Spinner有两个属性1:prompt是初始的时候,Spinner显示的数据,是一个引用类型
2:entries是直接在xml布局文件中绑定数据源(可以不设置,即可以在Activity中动态绑定)

②:建立数据源,使用数组,这些数据将会在Spinner下来列表中进行显示:

?
③:接着在Activity中加入如下的代码(使用了系统定义的下拉列表的布局文件,当然也可以自定义)

?
以上代码初步完成,看下运行效果:







下面是关于Spinner的点击事件(效果图如上图):

?
(二)使用自定义的Adapter(重点)

①:定义每一个Item的布局文件

?
②:建立Person类:

?
③:创建MyAdapter继承与BaseAdapter,进行适配:

?
④:在Activity中加入如下代码:

?
运行效果如下截图:





监听事件和第一种方法相同:

转自:http://blog.csdn.net/jiangqq781931404/article/details/7285623
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: