انجمن سایت کلیدستان



درآوردن ID یک سطر از ListView که در دیتابیس ذخیره است (در برنامه نویسی اندروید)زمان کنونی: ۱۳۹۵/۰۹/۲۱، ۰۲:۲۵ ب.ظ
کاربران در حال بازدید این موضوع: 1 مهمان
نویسنده: shafiei7
آخرین ارسال: admin
پاسخ 4
بازدید 1335

رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
درآوردن ID یک سطر از ListView که در دیتابیس ذخیره است (در برنامه نویسی اندروید)

درآوردن ID یک سطر از ListView که در دیتابیس ذخیره است (در برنامه نویسی اندروید)

#1
با سلام
من یک لیست ویو سفارشی درست کردم و اطلاعاتش از دیتابیس پر میشه تا اینجا همه چیز درست است. من خاصیت لمس طولانی روی لیست ویو فعال کردم و زمانی که روی  یکی از سطرها لانگ پرس کنیم یک کانتکس منو میاد که چند گزینه داره بنام حذف و آپدیت و غیره... حالا من میخوام وقتی روی حذف میزنم بره برای حذف همون آیتم خاص که روش لانگ پرس کردم و در واقع من آی دی اون سطر خاص که روش لانگ پرس کردم رو نیاز دارم که در دربیارم و نمیدونم چطوری باید در بیارم. آی دی به همراه سایر مشخصات هر ردیف در دیتابیس ذخیره است. لطفا کمک کنید.
پاسخ

درآوردن ID یک سطر از ListView که در دیتابیس ذخیره است (در برنامه نویسی اندروید)

#2
سلام.
شما زمانی که یک ListView  می سازید، چنانچه یک از روش های مربوط به اشاره بر روی item ها (ردیف ها - rows) را به کار ببرید، متغیری با نام position در آن وجود دارد که شماره متناظر با item اشاره شده را به شما می دهد. بر اساس آن متوجه می شوید که بر روی کدام item اشاره شده و بر اساس آن، اطلاعات مربوط به item را حذف می کنید.
مثلا در کلید زیر، ساخت یک ListView سفارشی شرح داده شده است که با اشاره بر روی هر item ، عدد مربوط به آن، به Activity بعدی ارسال می شود :

کلید شماره 843

در مبحث فوق، کدهای مربوط به اشاره بر روی item ها، به صورت زیر نوشته شده است :

کد پی‌اچ‌پی:
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {

            @
Override
            
public void onItemClick(AdapterView<?> parent, final View view,
                int position, long id) {                        
                        Intent i = new Intent(getApplicationContext(), SecondActivity.class);
                        number_of_keys = String.valueOf(position+1); 
                        i.putExtra("key_number", number_of_keys);
                        startActivity(i);       
            }

}); 

مشاهده می کنید که شماره متناظر با item اشاره شده را با متغیر position به دست آورده ایم (البته چون شماره item ها از صفر شروع می شود، یک واحد هم به آن اضافه کرده ایم).
تا اینجا گفتیم که چگونه شماره item را به دست آوریم، ولی حالا باید ببینید این id که گفتید در پایگاه داده ذخیره است، چه تناظری با شماره item ها دارد و بر اساس آن، اقدام کنید. مثلا شما باید یک آرایه داشته باشید که شماره id ها در آن ذخیره شده باشد و وقتی کاربر بر روی item شماره 0 اشاره می کند، شما باید id ای که در عنصر شماره 0 از آن آرایه ذخیره شده است را فراخوانی کرده و بر اساس آن، عملیات مورد نظرتان را انجام دهید.
بعد از حذف هم که باید ListView به روزرسانی شود.

bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ
 سپاس شده توسط shafiei7

درآوردن ID یک سطر از ListView که در دیتابیس ذخیره است (در برنامه نویسی اندروید)

#3
(۱۳۹۳/۰۹/۱۱, ۱۲:۴۵ ق.ظ)'admin' نوشته: سلام.
شما زمانی که یک ListView  می سازید، چنانچه یک از روش های مربوط به اشاره بر روی item ها (ردیف ها - rows) را به کار ببرید، متغیری با نام position در آن وجود دارد که شماره متناظر با item اشاره شده را به شما می دهد. بر اساس آن متوجه می شوید که بر روی کدام item اشاره شده و بر اساس آن، اطلاعات مربوط به item را حذف می کنید.
مثلا در کلید زیر، ساخت یک ListView سفارشی شرح داده شده است که با اشاره بر روی هر item ، عدد مربوط به آن، به Activity بعدی ارسال می شود :

کلید شماره 843

در مبحث فوق، کدهای مربوط به اشاره بر روی item ها، به صورت زیر نوشته شده است :

کد پی‌اچ‌پی:
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {

            @
Override
            
public void onItemClick(AdapterView<?> parent, final View view,
                int position, long id) {                        
                        Intent i = new Intent(getApplicationContext(), SecondActivity.class);
                        number_of_keys = String.valueOf(position+1); 
                        i.putExtra("key_number", number_of_keys);
                        startActivity(i);       
            }

}); 

مشاهده می کنید که شماره متناظر با item اشاره شده را با متغیر position به دست آورده ایم (البته چون شماره item ها از صفر شروع می شود، یک واحد هم به آن اضافه کرده ایم).
تا اینجا گفتیم که چگونه شماره item را به دست آوریم، ولی حالا باید ببینید این id که گفتید در پایگاه داده ذخیره است، چه تناظری با شماره item ها دارد و بر اساس آن، اقدام کنید. مثلا شما باید یک آرایه داشته باشید که شماره id ها در آن ذخیره شده باشد و وقتی کاربر بر روی item شماره 0 اشاره می کند، شما باید id ای که در عنصر شماره 0 از آن آرایه ذخیره شده است را فراخوانی کرده و بر اساس آن، عملیات مورد نظرتان را انجام دهید.
بعد از حذف هم که باید ListView به روزرسانی شود.



 



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

درآوردن ID یک سطر از ListView که در دیتابیس ذخیره است (در برنامه نویسی اندروید)

#4
اگر دقیق تر ساختار برنامه را توضیح بدهید شاید بتونم راهنماییتون کنم. 
bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان

آخرین کلیدهای غیررایگان

شما هم می توانید کلیدهای غیررایگان منتشر کنید (بیشتر بدانید)