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
[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进行适配数据:
①:首先定义一个布局文件:
?
2:entries是直接在xml布局文件中绑定数据源(可以不设置,即可以在Activity中动态绑定)
②:建立数据源,使用数组,这些数据将会在Spinner下来列表中进行显示:
?
?
下面是关于Spinner的点击事件(效果图如上图):
?
①:定义每一个Item的布局文件
?
?
?
?
监听事件和第一种方法相同:
转自:http://blog.csdn.net/jiangqq781931404/article/details/7285623
相关文章推荐
- 【转】 Pro Android学习笔记(二十):用户界面和控制(8):GridView和Spinner
- Android学习笔记:Activity-Spinner
- Android学习笔记:Activity-Spinner
- Android学习笔记之Spinner
- Android学习笔记(十二):Activity-Spinner
- Android学习笔记之Spinner
- Android学习笔记:Activity-Spinner
- Android学习笔记之Spinner下拉列表使用案例
- Android学习笔记——EditText、RadioGroup、CheckBox和Spinner的使用。
- android学习笔记19--------------Spinner 下拉列表的用法
- Android学习笔记:Activity-Spinner
- Android学习笔记(十二):Activity-Spinner
- android学习笔记之Spinner
- Android学习笔记--下拉菜单(Spinner)
- Android学习笔记之Spinner下拉列表使用案例
- android学习笔记4-Spinner
- Android学习笔记_72_Spinner的用法
- android学习笔记——Spinner控件
- 【Android学习笔记】Spinner
- Android学习笔记:Activity-Spinner