بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
set کردن عکس در متد fill درون پروژه ی ListView ( حل نشده )
من می خوام شبیه به پروژه ی ListView استاد بسازم با این تفاوت که درون item ها عکس قرار بگیره. حالا سوال من این هست. چطور میتونم بگم که در متد fill عکسها از StructItem خوانده میشن؟
public void fill(ArrayAdapter<StructItem> adapter,StructItem item, int position){
txtItem.setText(item.title);
imgItem.//inja chi benevisam???
}
این هم کلاس StructItem
public class StructItem {
public String title;
public String description;
public boolean done;
public ImageView img;
}
برای این سوال 2 پاسخ وجود دارد.
پاسخ به سوال
Spirit
12 سال پیش
+3
0
شما باید داخل کلاس StructItem آدرس فایل یا ID اون رو توسط یک متغیر از جنس int ذخیره کنید نه خود View رو ;
کلاس StructItem
public class StructItem {
public String title;
public String description;
public boolean done;
public int imgSrc;
}
نحوه آدرس دهی با فرض وجود عکس در پوشه drawable
StructItem item = new StructItem();
item.imgSrc = R.drawable.image01;
و استفاده در متد fill
public void fill(ArrayAdapter<StructItem> adapter,StructItem item, int position){
txtItem.setText(item.title);
imgItem.setImageResource(item.imgSrc);
}
پاسخ به سوال
amir Alu
12 سال پیش
0
0
کلاس AlbumAdapter:
public class AlbumAdapter extends ArrayAdapter<StructItem> {
public AlbumAdapter(ArrayList<StructItem> array){
super(G.context, R.layout.albume_fields_view);
}
private static class ViewHolder{
public TextView txtItem;
public ImageView imgItem;
public ViewHolder(View view){
txtItem=(TextView) view.findViewById(R.id.txt_item);
imgItem=(ImageView) view.findViewById(R.id.img_item);
}
public void fill(ArrayAdapter<StructItem> adapter,StructItem item, int position){
txtItem.setText(item.title);
imgItem.setImageResource(item.imgSrc);
}
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
StructItem item=getItem(position);
if(convertView==null){
convertView=G.inflater.inflate(R.layout.albume_fields_view,parent, false);
holder=new ViewHolder(convertView);
convertView.setTag(holder);
}else{
holder=(ViewHolder) convertView.getTag();
}
holder.fill(this, item, position);
return convertView;
}
}
کلاس G
public class G extends Application {
public static Context context;
public static LayoutInflater inflater;
@Override
public void onCreate() {
// TODO Auto-generated method stub
super.onCreate();
context=getApplicationContext();
inflater=(LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
}
کلاس MainActivity
public class MainActivity extends Activity {
public ArrayList<StructItem> fields = new ArrayList<StructItem>();
public ArrayAdapter adapter;
public GridView grdContent;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
grdContent = (GridView) findViewById(R.id.grd_content);
adapter = new AlbumAdapter(fields);
grdContent.setAdapter(adapter);
for(int i =0;i<100;i++){
StructItem titles=new StructItem();
titles.title="#"+i;
titles.imgSrc=R.drawable.ic_launcher;
fields.add(titles);
}
adapter.notifyDataSetChanged();
}
}
کلاس StructItem
public class StructItem {
public String title;
public int imgSrc;
}
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .