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

مشکل در پیاده سازی لیست ویو!!

javac  11 سال پیش  11 سال پیش
0 0

سلام خدمت دوستان ، شاید این سوال خیلی ساده و ابتدایی بنظر برسه اما من دو سه روز درگیرش بودم نتونستم راه حلی براش پیدا کنم.

قضیه اینه که من یک لیست ویو دارم که میخوام multiple choice item رو روش پیاده کنم یعنی یوزر با زدن چک باکس اون ردیف از لیست ویو رو به انتخاب خودش دربیاره ، یعنی کاربر باید چندتا ردیف رو انتخاب کنه که هر ردیف شامل یک edittext و یک textview هست و درنهایت با زدن یک دکمه تمام ردیف های انتخاب شده+مقادیرشون تو دیتابیس ذخیره بشه.

یکی از مشکلات پیاده سازی این قضیه ، بحث همون الوارهاست وقتی مثلا یکی از ردیف ها انتخاب میشه و کاربر در اون edittext هم یک مقدار وارد میکنه با اسکرول کردن اون مقدار به هم کپی میشه اما مشکل عمده  خوندن مقادیر edittext اون ردیف های انتخاب شده هست .

 

0 0
همش زیر سر این EditTextـه :| (11 سال پیش)
0 0
آره مشکل خوده همین ملعون هست :| چیکارش کنم!؟ (11 سال پیش)
 برای این سوال 2 پاسخ وجود دارد.
پاسخ به سوال 
Hajhosseini  11 سال پیش
+2 0

javac  جان توی StructItem که تعریف کردی یک فیلد به نام selected اضافه کن، زمانی که دکمه زده میشه، تمام لیست رو چک کن.
در adapter زمانی که کلیک انجام میشه item.selected رو true کن و زمانی که دکمه کلیک میشه کد زیر رو در اون اجرا کن:

 for(int i=0;i<adapter.getCount();i++){
                    StructItems item = (StructItems) adapter.getItem(i);
                    if(item.selected == true){
                        DoYourWork(item);
                    }
                }

این کد تک تک آیتم هایی که انتخاب شده رو به متد DoYourWork میفرسته

0 0
ممنون . بخش edittext رو چیکار باید کنم؟! مشکل عمده من خوندن مقدارش هست (11 سال پیش)
+1 0
خوب وقتی در ادیت تکست متن پر میشه، توی item.text متن رو وارد کنید، مانند item.selected (11 سال پیش)
+1 0
علی جان من فکر میکردم کار آسون و بی دردسریه، دیروز گفتم تست کنمش، تو دو ساعتی که سروکله زدم نتونستم پیادش کنم، تا خودتون انجام ندید متوجه عمق فاجعه نمیشید، البته شاید ما بلد نیستم :| (11 سال پیش)
+2 0
قول نمیدم ولی اگر تایمم خالی بشه تا آخر هفته آموزشش رو درج میکنم. (11 سال پیش)
0 0
لامصب بنظر ساده میاد ولی جواب نمیده :( اصن یه وضی! - خیلی ممنون :) (11 سال پیش)
پاسخ به سوال 
Hajhosseini  11 سال پیش
+2 0

نمونه رو ساختم، چند مشکل جالب برخوردم:
1: برای استفاده از ادیت تکست باید focus رو از لیست ویو بگیرید.(تست نکردم ولی راه حل داره که میشه در یک تاپیک جدا مطرح کرد)
2: اگر Checked رو روی CheckBox قرار بدید، یعنی متد onCheckedChangeListener ، هربار که لیست بالا و پایین میشه این متد کال میشه، نه فقط زمانی که روی CheckBox کلیک انجام میشه.
راه حل 2: کلیک رو روی LinearLayout بذارید به جای checkBox
راه حل 1: مانند استاد، تغییرات دیتا رو توی یک اکتیویتی دیگه، یا توی یک دیالوگ انجام بدید، توی لیست ویو ادیت تکست نندازید.
اگر مجبورید ادیت تکست در لیست ویو داشته باشید و نتونستید پیاده سازیش کنید، تاپیک بزنید و لینکش رو برای من پ خ کنید.
بقیه چیزا رو هم که خودتون میتونید توی Sample ببینید ;)
لینک دانلود سمپل از دراپ باکس
لینک به زودی پاک میشه، لطفا یکی از دوستان سمپل رو کامل کنه و در یک آپلود سنتر، آپلود کنه که همه بتونن استفاده کنن

توضیحات: در این سمپل، به دلایل بالا من ادیت تکست رو برداشتم، ولی شما میتونید همونجوری که من checked رو تغییر میدم متن مورد نظرتون رو هم تغییر بدید.

+1 0
تشکر و سپاس از وقتی که گذاشتید . آره بنظر میرسه برای استفاده از edittext هیچ راهی وجود نداره ، مجبور شدم یه روش دیگه رو پیاده کنم. البته برای checkBox من از متد onClickListener استفاده کردم ومشکل اسکرول ندارم! (11 سال پیش)
+1 0
جالبه که onClickListener کار میکنه ولی onCheckedChangeListener درست کار نمیکنه، برای editText هم راه حل وجود داره! باید focus رو خودتون کنترل کنید، لیست ویو به صورت اتوماتیک focus رو تغییر میده. (11 سال پیش)
+1 0
راه حل فوکوس رو که پیدا کردم اما مشکل کپی شدن مقادیر توی الوارها پیش میاد !! (11 سال پیش)
+1 0
یافتم :)! برای این مشکل هم میشه از TextWatcher برای ذخیره مقدار edittext در struct استفاده کرد کرد (11 سال پیش)
+2 0
روش حل فوکوس ادیت تکست در لیست ویو لینک (11 سال پیش)
0 0
این لینک که گذاشتید فیلتره، با توجه به صحبت های استاد مشکلی برای سایت بوجود نمیاره؟ اگر روشش رو در یک تاپیک دیگه آموزش میدادید و لینک اون تاپیک رو اینجا میذاشتید خیلی بهتر بود. (11 سال پیش)
0 0
شرمنده :| مدیران حذف کنند تا بعدا کامل همینجا بزارم (11 سال پیش)

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