public class MusicListDataAdapter extends BaseAdapter {
private LayoutInflater mInflater;
private ViewHolder holder;
private ArrayList<FileData> musicList;
public MusicListDataAdapter(Context context,ArrayList<FileData> dataList) {
mInflater = LayoutInflater.from(context);
musicList = dataList;
}
@Override
public int getCount() {
return musicList == null ? 0 : musicList.size();
}
@Override
public Object getItem(int position) {
return musicList == null ? 0 : musicList.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
//这里就是能解决问题的地方,,然后在xml中设置具体的宽度:200dp这种
convertView = mInflater.inflate(R.layout.music_list_data_item,parent,false);
holder = new ViewHolder();
holder.txtName = (TextView) convertView.findViewById(R.id.txt_musicName);
convertView.setTag(holder);
} else {
holder.txtName = (TextView) convertView.findViewById(R.id.txt_musicName);
}
holder.txtName.setText(musicList.get(position).getTilte());
return convertView;
}
class ViewHolder {
TextView txtName;
}
}
music_list_data_item.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="300dp"
android:layout_height="30dp"
android:gravity="center_vertical"
android:orientation="horizontal"
>
<ImageView
android:id="@+id/leftImageView"
android:layout_width="20dip"
android:layout_height="20dip"
android:layout_marginLeft="5dip"
android:src="@drawable/icon_file_song" />
<TextView
android:id="@+id/txt_musicName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="10dip"
android:singleLine="true"
android:textColor="@android:color/darker_gray"
android:textSize="15sp" />
</LinearLayout>
其他类
public class FileData {
String tilte;
String path;
int icon;
String author;
String singer;
public String getTilte() {
return tilte;
}
public void setTilte(String tilte) {
this.tilte = tilte;
}
public String getPath() {
return path;
}
public void setPath(String path) {
this.path = path;
}
public int getIcon() {
return icon;
}
public void setIcon(int icon) {
this.icon = icon;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
public String getSinger() {
return singer;
}
public void setSinger(String singer) {
this.singer = singer;
}
}