package cn.qylk.adapter; import java.io.Closeable; import java.io.IOException; import android.database.Cursor; import android.graphics.Color; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.TextView; import cn.qylk.R; import cn.qylk.fragment.CommonAdapter; /** * artist和album列表适配器 * * @author qylk2012 * */ public class AAListAdapter extends BaseAdapter implements Closeable,CommonAdapter { class ViewHolder { public TextView tv1, tv2, tv3; } private int curId; LayoutInflater layoutinflater; private Cursor mycursor; public AAListAdapter(LayoutInflater inflater, Cursor cursor) { layoutinflater = inflater; mycursor = cursor; } @Override public void close() throws IOException { mycursor.close(); } @Override public int getCount() { return mycursor.getCount(); } @Override public Object getItem(int position) { return position; } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder; if (convertView == null) { convertView = layoutinflater.inflate(R.layout.artist_album_list, null); holder = new ViewHolder(); holder.tv1 = (TextView) convertView.findViewById(R.id.listitem); holder.tv2 = (TextView) convertView.findViewById(R.id.sum); holder.tv3 = (TextView) convertView.findViewById(R.id.artist4this); convertView.setTag(holder);// 以tag寻找更快 } else { holder = (ViewHolder) convertView.getTag(); } mycursor.moveToPosition(position); StringBuilder sb = new StringBuilder().append(String.valueOf(position)) .append('.').append(mycursor.getString(0)); holder.tv1.setText(sb.toString()); holder.tv2.setText(mycursor.getInt(1) + "首"); holder.tv3.setText(mycursor.getString(2)); if (mycursor.getInt(3) == curId) { holder.tv1.setTextColor(Color.BLUE); holder.tv2.setTextColor(Color.BLUE); holder.tv3.setTextColor(Color.BLUE); } else { holder.tv1.setTextColor(Color.WHITE); holder.tv2.setTextColor(Color.WHITE); holder.tv3.setTextColor(Color.WHITE); } return convertView; } @Override public void setId(int id) { curId = id; } @Override public CharSequence getFirstChar(int position) { mycursor.moveToPosition(position); return mycursor.getString(0).subSequence(0,1); } @Override public void RefreshList(Cursor c) { this.mycursor = c; notifyDataSetChanged(); } @Override public Cursor getCursor() { return mycursor; } }