2014-01-22 24 views
-3

在這個程序中,我有一個自定義的listView,其中包含一個文字&的圖片。照片在可繪製的文件夾中。我想要將任何圖片與相關文本一起顯示在我的列表的每一行上,但我不知道如何?我已經上傳了我的程序樣本和下面的鏈接。 如圖所示!如何更改Android中自定義列表視圖中的圖片?

如果你能幫我一些指導,我會非常感激!

Picture server 1

Download Android Project-server 1

+3

包含在問題相關的代碼,沒有鏈接到某個未知網站。 – laalto

回答

0

你的代碼有很多錯誤......嘗試在你的適配器的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; 
} 
0
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,你問之前搜索此?我甚至沒有嘗試,但我很確定這個問題之前已經被問過。

相關問題