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

نمایش آخرین آیتم لیست ویو (حل شد)

MeY3am  8 سال پیش  8 سال پیش
0 0

سلام دوستان عزیزم؛

بعد از کلیک کردن بر روی آیتم های لیست ویو در اکتیویتی دوم که برای نمایش محتویات هست فقط آیتم آخر نشون داده میشه

البته با لاگ گرفتن در لاگ کت به درستی آرایه ای از داده های دیتابیس نشون داده میشن که این مدنظر من نیست !

میخوام هر آیتمی از لیست ویو که کلیک میشه با توجه به پوزیشن اون آیتم در اکتیویتی بعدی فقط ردیف (row) مربوط به اون آیتم که در دیتابیس حاوی اطلاعاتی هستش نمایش داده بشه نه فقط اطلاعات ردیف آخر و آیتم آخر در هر آیتم که کلیک میشه !

 

کد مربوط به فرستان پوزیشن آیتم کلیک شده 

 public void fill(final ArrayAdapter<StructNote> adapter, final StructNote item, final int position) {


            LayoutRoot.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View v) {

                    Intent intent = new Intent(G.currentActivity, ActivityMatn.class);
                    intent.putExtra("POSITION", position);
                    G.currentActivity.startActivity(intent);
                }

            });

        }

کد مربوط به دریافت اطلاعات آیتم کلیک شده

 Bundle extras = getIntent().getExtras();
        int position = 0;
        if (extras != null) {
            position = extras.getInt("POSITION");
        }

        StructNote note = G.notes.get(position);
        Cursor cursor = G.database.rawQuery("SELECT * FROM table", null);
        while (cursor.moveToNext()) {
            note.MATN1 = cursor.getString(cursor.getColumnIndex("matn1"));
            note.MATN2 = cursor.getString(cursor.getColumnIndex("matn2"));
            G.notes.add(note);
            txtMatn1.setText(note.MATN1));
            txtMatn2.setText(note.MATN2));
            Log.i("LOG", "Position is:" + note.MATN1);
        }
        //adapter.notifyDataSetChanged();
        cursor.close();

 

امیدوارم منظورمو درست انتقال داده باشم، ممنون میشم راهنمایی بفرمایید !

+1 0
query اشتباه نوشته شده. (8 سال پیش)
 برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال 
Spirit  8 سال پیش
+1 0

چند تا نکته هست،

تو OnClick بجای ارسال position از item.id استفاده کنید، توی دیتابیس هر سطر باید به id یکتا داشته باشه تا اینجا بشه استفاده کرد.

query شما هم درست نیست، الان اگر هدف دریافت اطلاعات یک سطر هست، باید توی query با توجه به id سطری که دریافت کردید دنبال همون سطر باشید نه همه سطرها تا جستجوی شما تنها یه سطر رو شامل بشه. ( اضافه کردن where).

قبل از دریافت اطلاعات از Cursor حتما باید متد moveToFirst صدا زده بشه. مثال:

Cursor cursor = database.rawQuery("select * from book where id = " + itemId, null);
if (cursor.moveToFirst()) {
String title = cursor.getString(cursor.getColumnIndex("title"));
}

دلیل این نوشته شدن این خط رو هم متوجه نشدم :

 G.notes.add(note);

 

0 0
ممنون از توضیحاتت دوست خوبم اسپیریت جان، تمامی نکته هایی رو که گفتی رو رعایت کردم و تغییر دادم ولی بازم نشد وقتی که حلقه while رو حذف میکنم خطای OutOfBoundsException میده، لطف کن تمامی کدهاشو برام بنویس مرسی داداشم ! (8 سال پیش)
0 0
ببخشید میثم جان یه جایی رو اشتباه گفتم، تصحیحش کردم. (8 سال پیش)
0 0
اسپریت جان هرکاری کردم بازم نشد، اگه ممکنه کد کاملشو به عنوان یه پاسخ جدید برام بنویس دوست خوب من :| (8 سال پیش)

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