PDA

View Full Version : مشکل با custom adapter



ho3ein.3ven
شنبه 11 مرداد 1393, 17:06 عصر
سلام . من می خوام یک گرید ویو شخصی سازی شده ایجاد کنم .
از آداپتر زیر استفاده می کنم :

public class CustomAdapter extends BaseAdapter { private Activity activity;

private ArrayList<Person> data;
private Person temp;
private static LayoutInflater inflater = null;
private static class ViewHolder{
public TextView tvName;
public ImageView ivPerson;
}
public CustomAdapter(Activity act, ArrayList<Person> list) {
// TODO Auto-generated constructor stub
this.activity = act;

this.data = list;
inflater = (LayoutInflater) activity
.getSystemService(Context.LAYOUT_INFLATER_SERVICE) ;
}


@Override
public int getCount() {
// TODO Auto-generated method stub
if (data != null)
return data.size();
else
return -1;
}


@Override
public Object getItem(int arg0) {
// TODO Auto-generated method stub
return arg0;
}


@Override
public long getItemId(int arg0) {
// TODO Auto-generated method stub
return arg0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
View vi = convertView;
ViewHolder holder;

if(convertView==null){

/****** Inflate tabitem.xml file for each row ( Defined below ) *******/
vi = inflater.inflate(R.layout.program_list, null);

/****** View Holder Object to contain tabitem.xml file elements ******/


holder = new ViewHolder();
holder.tvName= (TextView) vi.findViewById(R.id.textView1);
holder.ivPerson =(ImageView)vi.findViewById(R.id.imageView1);

/************ Set holder with LayoutInflater ************/
vi.setTag( holder );
}
else
holder=(ViewHolder)vi.getTag();

if(data.size()<=0)
{
holder.tvName.setText("No Data");

}
else
{
/***** Get each Model object from Arraylist ********/
temp=null;
temp= ( Person) data.get(position);

/************ Set Model values in Holder elements ***********/


holder.tvName.setText(temp.getName());
holder.ivPerson.setImageResource(temp.getUrl());

/******** Set Item Click Listner for LayoutInflater for each row *******/


// vi.setOnClickListener(new OnItemClickListener( temp.getName() ));
}
return vi;
}

آداپتر بالا رو برای لیست که استفاده می کنم هیچ مشکلی نداره ولی برای گرید ویو که استفاده می کنم بعضی وقتا برنامه کرش می کنه البته روی گوشی نه روی شبیه ساز .
حجم عکسام هم خیلی پایینه .

خواهش می کنم اگه کسی می تونه کمک کنه .

tresa022
شنبه 11 مرداد 1393, 17:20 عصر
منم قبلا به این مشکل برخوردم اومدم بجای base adapter از array adabter استفاده کردم راحت جواب میده و هیچ مشکلی نداره:چشمک:

ho3ein.3ven
شنبه 11 مرداد 1393, 17:50 عصر
میشه یه نمونه بزارید ؟

ho3ein.3ven
یک شنبه 12 مرداد 1393, 00:41 صبح
کسی نمیتونه کمک کنه ؟

ho3ein.3ven
یک شنبه 12 مرداد 1393, 12:56 عصر
از array adapter هم استفاده کردم بیشتر اررور میده

ho3ein.3ven
یک شنبه 12 مرداد 1393, 13:44 عصر
کسی با این کار کرده ؟
http://stackoverflow.com/questions/17370142/android-application-crashes-when-showing-multiple-images-in-gridview-component