在這個程序中,我有一個自定義的listView,其中包含一個文字&的圖片。照片在可繪製的文件夾中。我想要將任何圖片與相關文本一起顯示在我的列表的每一行上,但我不知道如何?我已經上傳了我的程序樣本和下面的鏈接。 如圖所示!如何更改Android中自定義列表視圖中的圖片?
如果你能幫我一些指導,我會非常感激!
Download Android Project-server 1
在這個程序中,我有一個自定義的listView,其中包含一個文字&的圖片。照片在可繪製的文件夾中。我想要將任何圖片與相關文本一起顯示在我的列表的每一行上,但我不知道如何?我已經上傳了我的程序樣本和下面的鏈接。 如圖所示!如何更改Android中自定義列表視圖中的圖片?
如果你能幫我一些指導,我會非常感激!
Download Android Project-server 1
你的代碼有很多錯誤......嘗試在你的適配器的getView方法中做這樣的事情。
@Override
public View getView(int position, View view, ViewGroup parent) {
ViewHolder holder = new ViewHolder();
if (convertView == null) {
convertView = inflater.inflate(R.layout.listbox_item, parent, false);
holder.img = (ImageView) convertView.findViewById(R.id.ID_OF_THE_IMAGE);
holder.tv = (TextView) convertView.findViewById(R.id.ID_OF_THE_TEXTVIEW);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.img.setImageResource(SET_THE_IMAGE);
holder.tv.setText(SET_THE_TEXT);
holder.tv.setTypeface(mTypeface);
return convertView;
}
還要創建一個私有類ViweHolder提高了的ListView了15%的性能,而應該是這樣的,你的情況的東西....
private class ViewHolder {
ImageView img;
TextView tv;
}
import java.util.List;
import android.content.Context;
import android.graphics.drawable.Drawable;
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 AListAdapter extends BaseAdapter {
private Context context;
private List<Drawable> imgs;
private LayoutInflater inflater;
public AListAdapter(Context context, List<Drawable> drawables) {
this.context = context;
this.imgs = drawables;
}
@Override
public int getCount() {
return imgs.size();
}
@Override
public Object getItem(int arg0) {
return imgs.get(arg0);
}
@Override
public long getItemId(int arg0) {
return imgs.size();
}
@Override
public View getView(int arg0, View arg1, ViewGroup arg2) {
// TODO Auto-generated method stub
inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View row;
if (arg1 == null) {
row = inflater.inflate(R.layout.rowLayout, null);
} else {
row = arg1;
}
ImageView img = (ImageView) row.findViewById(R.id.rowImg);
img.setBackground(imgs.get(arg0));
TextView txt = (TextView) row.findViewById(R.id.txtView);
txt.setText("TEST1");
return row;
}
}
正如你所看到的,StackOverflow上讓您張貼代碼:P BTW,你問之前搜索此?我甚至沒有嘗試,但我很確定這個問題之前已經被問過。
包含在問題相關的代碼,沒有鏈接到某個未知網站。 – laalto