BaseAdapter extends Object implements ListAdapterSpinnerAdapter
实现方法如下。
public int getCount() public Object getItem(int position) public long getItemId(int position) public View getView(int position, View convertView, ViewGroup parent)
类中要有一个列表对象,存储list的各项的数据。所以还一个构造函数对这个列表对象赋值,或一个赋值方法。
protected ArrayList<Tweet> mTweets;
private Context mContext;
public TweetArrayAdapter(Context context,ArrayList<Tweet> tweets) {
mTweets = tweets;
mContext = context;
}
@Override
public int getCount() {
return mTweets.size();
}
@Override
public Object getItem(int position) {
return mTweets.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
private static class ViewHolder {
public TextView tweetUserText;
...
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view=null;
if (convertView == null) {//为空创建,并不是每次都要创建,所以这步很有必要
view = mInflater.inflate(R.layout.tweet, parent, false);
ViewHolder holder = new ViewHolder();
holder.tweetUserText = (TextView) view
.findViewById(R.id.tweet_user_text);
...
view.setTag(holder);
} else {
view = convertView;
}
ViewHolder holder = (ViewHolder) view.getTag();
Tweet tweet = mTweets.get(position);
holder.tweetUserText.setText(tweet.screenName);
...//设置view项内容
return view;
}