بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

بازگشت به position قبلی در listview

مدیریت گفتگو
parand 10 سال پیش
آخرین تغییر: 9 سال پیش

با سلام

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

بعد از کلیک  روی هر Item  از listview  به صفحه دیگری منتقل میشویم ، و وقتی که به صفحه قبل که همان صفحه listview  است بر میگردیم دومرتبه listview از اول نمایش داده میشود برای اینکه زمان برگشت از همان postion قبلی شروع شود و نمایش داده شود چکار باید کرد؟

باید در class Adapter  این دستور را داد؟ یا در کلاسی که listview را مایش میدهد؟ یا کلاس بعدی؟

چونکه اگر اینطوری باشه کاربر بعد از کلیک روی هر آیتم باید باز اسکرول کنه که برسه به همان آیتمی که روش کلیک کرده بوده.

ممنون میشم راهنمایی کنید

نظرات

parand 10 سال پیش
کسی جوابی برای اسن سوال من نداره؟
alisherafat01 10 سال پیش
خب میتونید اون اکتیویتی رو که لیست داخلش هست رو باز نگه دارید که وقتی برگشتید همه چیز سر جاش باشه... یا اگه اینجوری نمیخاید باید POSITION رو هم به اکتیویتی جدید بفرستید و موقع بازگشت به لیست بگید که به اون POSITION اسکرول کنه!
alisherafat01 10 سال پیش
برای لیست هایی که ازسمت سرور میاد همون روش باز نگه داشتن اکتیویتی مربوط به لیست منطقی تره

پاسخ‌ها 1

Mohammad Vp 10 سال پیش

خدمت شما:

 Parcelable state;

@Override
public void onPause() {    
    // Save ListView state @ onPause
    Log.d(TAG, "saving listview state @ onPause");
    state = listView.onSaveInstanceState();
    super.onPause();
}
...

@Override
public void onViewCreated(final View view, Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);
    // Set new items
    listView.setAdapter(adapter);
    ...
    // Restore previous state (including selected item index and scroll position)
    if(state != null) {
        Log.d(TAG, "trying to restore listview state..");
        listView.onRestoreInstanceState(state);
    }
}

نظرات

parand 9 سال پیش
البته برای من این کار نکرد

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