PDA

View Full Version : تغییر یک سری آیتم خاص در لیست



javadi3d
چهارشنبه 03 اردیبهشت 1393, 23:09 عصر
سلام من یک لیست شخصی سازی شده ساختم حالا میخوام مثلا آیتم 5و9 لیست ظاهرشون کلا فرق داشته باشه و از یک xml دیگه ظاهر سازی بشن
باید چه کرد ؟

اینم آداپتر لیستم:
public class FaslhaAdapter extends ArrayAdapter<Faslha> {


List<Faslha> faslha;
Context c;
public FaslhaAdapter(Context c, List<Faslha> faslha) {
super(c, android.R.id.content, faslha);
this.c = c;
this.faslha = faslha;

}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// laye mun ro tarif mikonim
LayoutInflater vi = (LayoutInflater) c
.getSystemService(Context.LAYOUT_INFLATER_SERVICE) ;
View view = vi.inflate(R.layout.itemlistmain, null);

Faslha fasl = faslha.get(position);

TextView tvDastan = (TextView) view.findViewById(R.id.itm_namDastan);
tvDastan.setText(fasl.getOnvan());


// pas in vase inke fav has ya na
if (fasl.getFav() == 0) {
// yani gae fav nabud
ImageView img = (ImageView) view.findViewById(R.id.itm_isfav1);
int imageResource = c.getResources().getIdentifier("itm_nofav1",
"drawable", c.getPackageName());
img.setImageResource(imageResource);
}
/// yeki dige ham vase khande shode ya na
if (fasl.getKhande() == 0) {
// yani gae khande shode nabud
ImageView img = (ImageView) view.findViewById(R.id.itm_issee1);
int imageResource = c.getResources().getIdentifier("itm_nosee1",
"drawable", c.getPackageName());
img.setImageResource(imageResource);
}

return view;

}
}


این هم coustomadapter:
public class CustomAdapter extends BaseAdapter{
String [] result;
Context context;
int [] imageId;
DBAdapter db;
List<Faslha> faslha;
private static LayoutInflater inflater=null;
public CustomAdapter(MainActivity mainActivity, String[] prgmNameList, int[] prgmImages) {
// TODO Auto-generated constructor stub
result=prgmNameList;
context=mainActivity;
imageId=prgmImages;
inflater = ( LayoutInflater )context.
getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
public CustomAdapter(Search search, String[] prgmNameList, int[] prgmImages) {
// TODO Auto-generated constructor stub
result=prgmNameList;
context=search;
imageId=prgmImages;
inflater = ( LayoutInflater )context.
getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}public CustomAdapter(ShowFaslha showfaslha, String[] prgmNameList, int[] prgmImages) {
// TODO Auto-generated constructor stub
result=prgmNameList;
context=showfaslha;
imageId=prgmImages;
inflater = ( LayoutInflater )context.
getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
public CustomAdapter(Setting setting, String[] prgmNameList, int[] prgmImages) {
// TODO Auto-generated constructor stub
result=prgmNameList;
context=setting;
imageId=prgmImages;
inflater = ( LayoutInflater )context.
getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return result.length;
}

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

@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}

public class Holder
{
TextView tv;
ImageView img;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
Holder holder=new Holder();
View rowView;
rowView = inflater.inflate(R.layout.itemlistslidemenu, null);
holder.tv=(TextView) rowView.findViewById(R.id.show_faslha);
holder.img=(ImageView) rowView.findViewById(R.id.show_share);
holder.tv.setText(result[position]);
holder.img.setImageResource(imageId[position]);

return rowView;
}

}

اگه چیزه دیگه ای لازمه بگید تا توضیح بدم.....

darkenerboy
چهارشنبه 03 اردیبهشت 1393, 23:42 عصر
فکر کنم شما باید با استفاده از position آیتم مورد نظرت رو پیدا کنی از خط 17 ادپتر اصلیت تغییرات رو اعمال کنی

abbasalim
پنج شنبه 04 اردیبهشت 1393, 17:01 عصر
منم با نظرdarkenerboy (http://barnamenevis.org/member.php?157652-darkenerboy) موافقم میتونید موقعیت رو بگیرید و شرط بزارید اگه این موقعیت بود این تغییرات رو بده