android中Spinner的使用方法
2014-08-04 23:10
591 查看
一、采用xml文件中的string-array定义
<string-array name="test_string_array">
<item>AA</item>
<item>BB</item>
<item>CC</item>
</string-array>
对应的java类中部分
spinner1 = (Spinner)findViewById(R.id.spinner1);
adapter = ArrayAdapter.createFromResource(this,R.array.test_string_array,
android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner1.setAdapter(adapter);
二、采用List集合方式
List<CharSequence> list = new ArrayList<CharSequence>();
list.add("xiaoyezi");
list.add("xiaozhengzi");
adapter = new ArrayAdapter<CharSequence>(this,
R.layout.adapter_item,R.id.itemTextView1,list);
spinner1.setPrompt("请选择");
spinner1.setAdapter(adapter);
三、自定义方式
1、自定义显示的方式 (adapter_item.xml文件)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >
<TextView
android:id="@+id/itemTextView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<TextView
android:id="@+id/itemTextView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
</LinearLayout>
2、自定义显示的类Person
package com.example.po;
public class Person {
private int age;
private String name;
public Person(int age,String name) {
this.age = age;
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return this.age+"-->"+this.name;
}
}
3、PersonAdapter类
package com.example.adapter;
import java.util.List;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
import com.example.po.Person;
public class PersonAdapter extends BaseAdapter{
private List<Person> persons;
private Context context;
public PersonAdapter(Context context,List<Person> persons){
this.context = context;
this.persons = persons;
}
@Override
public int getCount() {
if(persons!=null)
return persons.size();
return 0;
}
@Override
public Object getItem(int position) {
if(persons!=null&&!persons.isEmpty())
return persons.get(position);
return null;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View view, ViewGroup viewGroup) {
LayoutInflater layoutInflater = LayoutInflater.from(context);
view = layoutInflater.inflate(R.layout.adapter_item,null);
if(view!=null&&persons!=null){
TextView textView1 = (TextView)view.findViewById(R.id.itemTextView1);
TextView textView2 = (TextView)view.findViewById(R.id.itemTextView2);
String age = persons.get(position).getAge()+"";
String name = persons.get(position).getName();
textView1.setText(age);
textView2.setText(name);
}
return view;
}
}
4、对应的MainActivity类
List<Person> persons = new ArrayList<Person>();
persons.add(new Person(1,"叶胜华"));
persons.add(new Person(2,"郑苏云"));
PersonAdapter personAdapter = new PersonAdapter(this, persons);
spinner1.setAdapter(personAdapter);
四、监听Spinner
1、创建监听对象
private OnItemSelectedListener onItemSelLis = new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int position,long id) {
Log.i("time", view.getId()+"-->"+R.layout.activity_main+"-->"+id);
Log.i("time",""+(view.getId() == R.id.spinner1));
Log.i("time",adapterView.getItemAtPosition(position).toString());
Log.i("time",""+position+"-->"+adapterView.getItemIdAtPosition(position));
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
Log.i("time","nothing selected");
}
};2、注册监听
spinner1.setOnItemSelectedListener(onItemSelLis);
五、整体测试代码
package com.example.adapter;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import com.example.po.Person;
public class MainActivity extends Activity {
private Spinner spinner1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
spinner1 = (Spinner)findViewById(R.id.spinner1);
adapter = ArrayAdapter.createFromResource(this,R.array.test_string_array,
android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner1.setAdapter(adapter);
List<Person> persons = new ArrayList<Person>();
persons.add(new Person(1,"叶胜华"));
persons.add(new Person(2,"郑苏云"));
PersonAdapter personAdapter = new PersonAdapter(this, persons);
spinner1.setAdapter(personAdapter);
spinner1.setPrompt("请选择"); //设置默认显示标题内容
spinner1.setOnItemSelectedListener(onItemSelLis);
List<CharSequence> list = new ArrayList<CharSequence>();
list.add("xiaoyezi");
list.add("xiaozhengzi");
adapter = new ArrayAdapter<CharSequence>(this,
R.layout.adapter_item,R.id.itemTextView1,list);
spinner1.setPrompt("请选择");
spinner1.setAdapter(adapter);
}
private ArrayAdapter<CharSequence> adapter = null;
private OnItemSelectedListener onItemSelLis = new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int position,long id) {
Log.i("time", view.getId()+"-->"+R.layout.activity_main+"-->"+id);
Log.i("time",""+(view.getId() == R.id.spinner1));
Log.i("time",adapterView.getItemAtPosition(position).toString());
Log.i("time",""+position+"-->"+adapterView.getItemIdAtPosition(position));
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
Log.i("time","nothing selected");
}
};
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
<string-array name="test_string_array">
<item>AA</item>
<item>BB</item>
<item>CC</item>
</string-array>
对应的java类中部分
spinner1 = (Spinner)findViewById(R.id.spinner1);
adapter = ArrayAdapter.createFromResource(this,R.array.test_string_array,
android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner1.setAdapter(adapter);
二、采用List集合方式
List<CharSequence> list = new ArrayList<CharSequence>();
list.add("xiaoyezi");
list.add("xiaozhengzi");
adapter = new ArrayAdapter<CharSequence>(this,
R.layout.adapter_item,R.id.itemTextView1,list);
spinner1.setPrompt("请选择");
spinner1.setAdapter(adapter);
三、自定义方式
1、自定义显示的方式 (adapter_item.xml文件)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >
<TextView
android:id="@+id/itemTextView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<TextView
android:id="@+id/itemTextView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
</LinearLayout>
2、自定义显示的类Person
package com.example.po;
public class Person {
private int age;
private String name;
public Person(int age,String name) {
this.age = age;
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return this.age+"-->"+this.name;
}
}
3、PersonAdapter类
package com.example.adapter;
import java.util.List;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
import com.example.po.Person;
public class PersonAdapter extends BaseAdapter{
private List<Person> persons;
private Context context;
public PersonAdapter(Context context,List<Person> persons){
this.context = context;
this.persons = persons;
}
@Override
public int getCount() {
if(persons!=null)
return persons.size();
return 0;
}
@Override
public Object getItem(int position) {
if(persons!=null&&!persons.isEmpty())
return persons.get(position);
return null;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View view, ViewGroup viewGroup) {
LayoutInflater layoutInflater = LayoutInflater.from(context);
view = layoutInflater.inflate(R.layout.adapter_item,null);
if(view!=null&&persons!=null){
TextView textView1 = (TextView)view.findViewById(R.id.itemTextView1);
TextView textView2 = (TextView)view.findViewById(R.id.itemTextView2);
String age = persons.get(position).getAge()+"";
String name = persons.get(position).getName();
textView1.setText(age);
textView2.setText(name);
}
return view;
}
}
4、对应的MainActivity类
List<Person> persons = new ArrayList<Person>();
persons.add(new Person(1,"叶胜华"));
persons.add(new Person(2,"郑苏云"));
PersonAdapter personAdapter = new PersonAdapter(this, persons);
spinner1.setAdapter(personAdapter);
四、监听Spinner
1、创建监听对象
private OnItemSelectedListener onItemSelLis = new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int position,long id) {
Log.i("time", view.getId()+"-->"+R.layout.activity_main+"-->"+id);
Log.i("time",""+(view.getId() == R.id.spinner1));
Log.i("time",adapterView.getItemAtPosition(position).toString());
Log.i("time",""+position+"-->"+adapterView.getItemIdAtPosition(position));
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
Log.i("time","nothing selected");
}
};2、注册监听
spinner1.setOnItemSelectedListener(onItemSelLis);
五、整体测试代码
package com.example.adapter;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import com.example.po.Person;
public class MainActivity extends Activity {
private Spinner spinner1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
spinner1 = (Spinner)findViewById(R.id.spinner1);
adapter = ArrayAdapter.createFromResource(this,R.array.test_string_array,
android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner1.setAdapter(adapter);
List<Person> persons = new ArrayList<Person>();
persons.add(new Person(1,"叶胜华"));
persons.add(new Person(2,"郑苏云"));
PersonAdapter personAdapter = new PersonAdapter(this, persons);
spinner1.setAdapter(personAdapter);
spinner1.setPrompt("请选择"); //设置默认显示标题内容
spinner1.setOnItemSelectedListener(onItemSelLis);
List<CharSequence> list = new ArrayList<CharSequence>();
list.add("xiaoyezi");
list.add("xiaozhengzi");
adapter = new ArrayAdapter<CharSequence>(this,
R.layout.adapter_item,R.id.itemTextView1,list);
spinner1.setPrompt("请选择");
spinner1.setAdapter(adapter);
}
private ArrayAdapter<CharSequence> adapter = null;
private OnItemSelectedListener onItemSelLis = new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int position,long id) {
Log.i("time", view.getId()+"-->"+R.layout.activity_main+"-->"+id);
Log.i("time",""+(view.getId() == R.id.spinner1));
Log.i("time",adapterView.getItemAtPosition(position).toString());
Log.i("time",""+position+"-->"+adapterView.getItemIdAtPosition(position));
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
Log.i("time","nothing selected");
}
};
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
相关文章推荐
- Android Spinner控件使用方法
- Android学习 - 下拉菜单spinner的使用方法
- ANDROID下拉菜单SPINNER的使用方法
- Android中Spinner的使用方法
- Xamarin android spinner的使用方法
- Android控件Spinner的使用方法(1)
- Android列表选择框Spinner使用方法详解
- android下拉菜单spinner的使用方法
- android下拉菜单spinner的使用方法
- android下拉菜单spinner的使用方法
- Android 在Dialog中使用Spinner时,下三角图标覆盖在按钮上的解决方法
- android下拉菜单spinner的使用方法
- android下拉菜单spinner的使用方法
- android下拉菜单spinner的使用方法
- Android进阶之Spinner下拉框的使用方法
- android下拉菜单spinner的使用方法
- Xamarin android spinner的使用方法
- android下拉菜单spinner的使用方法
- android下拉菜单spinner的使用方法
- android 常用控件之 (Spinner )使用方法