您的位置:首页 > 其它

Spinner使用自定义适配器

2015-10-29 23:19 344 查看
本篇博客的源码免费下载:点击打开链接

SpinnerTest使用自定义适配器

先看一下效果图:

两张效果不一样是因为:






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

<?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/spinner_item"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<TextView
android:id="@+id/spinner_item2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
</LinearLayout>
②:建立Person类:
package com.eulav.bean;

public class Person {
private String name;
private String text;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}

public String getText() {
return text;
}
public void setText(String text) {
this.text = text;
}
public Person(String name,String text){
super();
this.name= name;
this.text=text;

}

}
③:创建MyAdapter继承与BaseAdapter,进行适配:
package com.eulav.spinnertest;

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.eulav.bean.Person;

public class MyAdapter extends BaseAdapter {
private List<Person> mlist;
Context mcontex;
public MyAdapter (Context pcontext,List<Person> lperson){
this.mlist = lperson;
this.mcontex = pcontext;
};
@Override
public int getCount() {
// TODO Auto-generated method stub
return mlist.size();
}

@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return position;
}

@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = LayoutInflater.from(mcontex);
ItemHolder itemholder=null;

if(itemholder == null){
itemholder = new ItemHolder();
convertView = inflater.inflate(R.layout.spinner_item, null);
//得到各个控件的对象
itemholder.tv1 = (TextView) convertView.findViewById(R.id.spinner_item);
itemholder.tv2 = (TextView) convertView.findViewById(R.id.spinner_item2);
convertView.setTag(itemholder);
}else{
itemholder = (ItemHolder)convertView.getTag();
}

itemholder.tv1.setText(mlist.get(position).getName());
itemholder.tv2.setText(mlist.get(position).getText());
return convertView;
}

}
class ItemHolder{
TextView tv1;
TextView tv2;

}
④:在创建好的SpinnerActivity中加入如下代码:
<pre name="code" class="java"><span style="color:#404040;">package com.eulav.spinnertest;

import java.util.ArrayList;
import java.util.List;

import android.app.Activity;
import android.os.Bundle;
import android.widget.Spinner;

import com.eulav.bean.Person;

public class SpinnerMainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.spinner_main);
Spinner spinner = (Spinner) findViewById(R.id.spinner);//获得组件
</span><span style="color:#ff0000;"> List<Person> person = new ArrayList<Person>();
person.add(new Person("zhangvalue","我是就是我"));
person.add(new Person("叶良辰","良晨必有厚报"));
person.add(new Person("赵日天", "有本事你来呀"));
person.add(new Person("杨顶天","wedf"));</span><span style="color:#404040;">

</span><span style="color:#ff0000;"> MyAdapter myadapter = new MyAdapter(this, person);
spinner.setAdapter(myadapter);//绑定adapter到spinner控件上</span><span style="color:#404040;">
}
}
</span>


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  spinner adapter