学习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;
}
}