मेरे ऐप में मुझे एक समान आवश्यकता थी। सूची की स्थिति को परिभाषित करने के लिए मैंने getListView().setSelection()
का उपयोग किया, यह स्क्रॉल के बिना अच्छी तरह से काम करता है।
आप 2 गतिविधियों रखने पर विचार करते हैं, तो ActivityA जो एक कर्सर और ActivityB जो एक नया आइटम जोड़ने के लिए एक रूप है से सूची दिखाता है। खत्म पर, ActivityB आइटम कर्सर आईडी लौटना चाहिए, तो ActivityB
आईडी के साथ आइटम की स्थिति को प्राप्त कर सकते हैं, और इस कोड की तरह स्थिति सेट,:
/* check intent Id to scroll to the right item after update or delete */
if (getIntent().hasExtra(ITEMID_INTENT_KEY))
{
long id = getIntent().getLongExtra(ITEMID_INTENT_KEY, 0);
int position = getPositionFromId(id);
getListView().setSelection(position > 0 ? position - 1 : 0);
getIntent().removeExtra(ITEMID_INTENT_KEY);
}
(...)
private int getPositionFromId(long id)
{
mCursor.moveToFirst();
do
{
Long cursorId = mCursor.getLong(mCursor.getColumnIndexOrThrow(yourIdColumn));
if (cursorId.longValue() == id)
{
return mCursor.getPosition();
}
}
while (mCursor.moveToNext());
return 0;
}