اسپینر در ادپتر لیست ویو (حل شد)
سلام دوستان :
من یک لیست ویو دارم که دیتا از سرور لود میشه و در ادپتر هم اسپینر برای هر ایتم ست شده به غیر تکست ویوها.
این اسپینر کارش اینه کلیک بشه و یه عددی انتخاب بشه آپدیت بشه سمت سرور.
دفعه اول که دیتا لود میشه چون onSelectListener تعریف کرده بودم برای اسپینر یه بار عمل آپدیت انجام می شد بدون اینکه من سلکت کنم. برای همین یه دونه onTouchListener هم تعریف کردم که این اتفاق نیوفته.
حالا دیتا بیاد مثلا ۶ تا ایتم در لیست ویو. تا روی اسپینر سلکت نکنم و آپدیت نشه همه چی خوبه. ولی بیام رو یکی از اسپینرها تاچ کنم و آپدیت انجام شه و بخوام اسکرول کنم بین آیتم های لیست ویو این عمل آپدیت اجرا میشه با هر بار اسکرول.
چه کار کنم درست بشه ؟ onClickListenr هم نداره اسپینر که نخوام تاچ کنم. :(
//change item in Spinner
spinnerCount.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
spinnerCount.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parentView, View view, int position, long id) {
count = Integer.parseInt(spinnerCount.getSelectedItem().toString());
//update counter in Spinner
pd = ProgressDialog.show(AdapterShoppingBag, null, "لطفا صبر کنید...");
Thread thread = new Thread(new Runnable() {
Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
pd.dismiss();
switch (res) {
case "OkUpdateCount":
res = "";
break;
case "NoUpdateCount":
Toast.makeText(AdapterShoppingBag, "خطا در بروزرسانی تعداد محصول", Toast.LENGTH_SHORT).show();
res = "";
break;
default:
Toast.makeText(G.context, "خطا در انجام عملیات", Toast.LENGTH_SHORT).show();
break;
}
super.handleMessage(msg);
}
};
@Override
public void run() {
try {
Message msg = new Message();
CartHelper.updateCount(item.id, count ,G.sp.getString("mobilee", ""));
handler.sendMessage(msg);
} catch (Exception e) {
Log.e("LOG", e.getMessage());
}
}
});
thread.start();
}
@Override
public void onNothingSelected(AdapterView<?> parentView) {
}
});
return false;
}
});
خوب مشکلم با این کد حل شد وقتی که دیتا لودش تموم میشه باید این رو ست می کردم !
spinnerCount.setOnItemSelectedListener(null);
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .