آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

حذف آیتم از لیست ویو

amard  9 سال پیش  9 سال پیش
0 0

من از لیست ویو سفارشی استفاده کردم و حالا میخوام دیتایی که حذف میکنم از لیست هم حذف بشه.لیست ویو من ArrayList نمیگیره به عنوان ورودی.یک ارایه میگیره. برای حذف ایتم رو از arraylist مورد نظر remove میکردن حالا من که ارایه دارم باید چیکار کنم؟

 

 
class CustomAdapter extends ArrayAdapter<String> {

Context context;

int image[];

String[] title;

String[] description;

String[] m = {"تاریخ : 1395/3/5", "تاریخ : 1395/3/5", "تاریخ : 1395/3/5", "تاریخ : 1395/3/5"};

public CustomAdapter(Context context, String[] titles, int[] imgs, String[] desc) {

super(context, R.layout.single_row_bazdid, titles);

this.context = context;

this.image = imgs;

this.title = titles;

this.description = desc;

}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

View row = inflater.inflate(R.layout.single_row_bazdid, parent, false);

ImageView myimage = (ImageView) row.findViewById(R.id.imageViewe);

TextView mytitle = (TextView) row.findViewById(R.id.textViewe);

TextView mydesc = (TextView) row.findViewById(R.id.textView2e);

TextView erjakonande = (TextView) row.findViewById(R.id.textView0e);


myimage.setImageResource(image[position]);

mytitle.setText(title[position]);

mydesc.setText(description[position]);

erjakonande.setText(m[position]);


return row;


}

}

 

 
del.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {


DataBase db = new DataBase(Code_DarHalBazdid.this,"MELK_TBL");
try
{
db.open();

db.DeleteCode(Data.get(_position).get(0));
adapter.notifyDataSetChanged();

db.close();

}catch (Exception e)
{
Toast.makeText(getApplicationContext(),e.toString(),Toast.LENGTH_LONG).show();
}


}
});

 

 برای این سوال 2 پاسخ وجود دارد. مشاهده پاسخ صحیح
پاسخ به سوال 
124867  9 سال پیش
0 0

 پاسخ صحیح

یه راهش اینه که یک شما دوباره آرایه خودتونو مقدار دهی کنی و بعد از notifyDAtaSetChenged استفاده کنید . 

مثلا من برای آرایه خودم این کارو کردم

myArray.clear();
if (G.numberDoreh != 0) {
for (int i = 0; i < G.numberDoreh; i++) {
String str = G.paramsDoreh.get("title" + i).toString();
myClassForArray doreh = new myClassForArray();
myArray.NameDore = str;
Doreh.add(myArray);
Log.i(TAG,"name doreh :"+MainStartup.Doreh.get(i)+" i: "+ i);
}
} else {
Log.i("MainStartup", "G.numberDore is empty : ");
}
adapter.notifyDataSetChanged();
 

ولی این یک مشکلی داره که وقتی از بالا لیست ویو حذف میکنم  اولین گزینه درست حذف میشه و درست چیده میشه اما وقتی دومین گزینه رو حذف میکنم  درست حذف میکنه ولی درست نمیچینه فیلد ها رو  و از این جا به بعد چون درست نمایش نمیده ممکنه اشتباهی حذف کنه و مشکل ساز بشه(که احتمالا این هم از تابع fill منه که لیست ویو منو میچینه که اگه برا شما درست باشه احتمالا درست کار میکنه ) امیدوارم بتونید ازش استفاده کنید .

اگر هم به این مشکل بالا که گفتم خوردید و راهی براش پیدا کردید ممنون میشم به اشتراک بزارید 

پاسخ به سوال 
124867  9 سال پیش
0 0

البته یک راه راحت تر اینه که از (adapter.remove(item  استفاده کنید که در این روشم من مشکلاتی مثل درست نمایش ندادن رو داشتم(که احتمالا این هم از تابع fill منه که لیست ویو منو میچینه که اگه برا شما درست باشه احتمالا درست کار میکنه ) 


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .