Android adapter适配器的学习

  学习Android有一点时间,说说自己的学习感悟。

  首先呢,先说说适配器的作用,顾名思义,它就是把数据定义好一定的规则,使得我们可以用到ListView GridView等上面

  所以说这玩意,还是得好好研究研究的。

  适配器呢,常用有两种SimpleAdapter 还有 ArrayAdapter 当然还有很多种了它们都继承了baseAdapter类;

  有时候因为条件的需要,可能官方给出适配器并不适用我们的需求,

  嘎嘎

  所以了,我们就需要自定义一个Adapter了,

  首先在工程里建一个class 继承 baseAdapter类

  添加它的几个方法 ,当然它是自动帮我们添加好的,不过也有人品不好的时候,getCount(), getItem(int arg0), getItemId(int arg0),getView(int position, View convertView, ViewGroup parent)

 在初始化的传递上下文,

好的现在基本上就完成了,主要在getView上画好我们想要的样子就Ok了

import java.util.List;
import com.spyrx7.Module.Music;
import com.spyrx7.MusicSite.R;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;

public class MusicAdapter extends BaseAdapter {
private Context context;
private List<Music> MusicList;
public MusicAdapter(Context context,List<Music> list) {
this.context=context;
this.MusicList=list;
}
public void setListItem(List<Music> listMusic){
this.MusicList=listMusic;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return MusicList.size();
}
@Override
public Object getItem(int arg0) {
// TODO Auto-generated method stub
return MusicList.get(arg0);
}
@Override
public long getItemId(int arg0) {
// TODO Auto-generated method stub
return arg0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {

if(convertView==null)
{
convertView=LayoutInflater.from(context).inflate(R.layout.musicinput, null);

}

Music m=MusicList.get(position);

ImageView img=(ImageView)convertView.findViewById(R.id.imgTagmusic);
TextView tvMusic=(TextView)convertView.findViewById(R.id.tcMusicName);
TextView tvSinger=(TextView)convertView.findViewById(R.id.txSinger);
tvMusic.setText(m.getMusic());
tvSinger.setText(m.getSinger());

return convertView;
}

}

  

原文地址:https://www.cnblogs.com/spyrx7/p/3599601.html