выделять предыдущий выбранный элемент, когда пользователь возвращается из другого действия - PullRequest
0 голосов
/ 01 июля 2011

Activity1 имеет listView.Нажатие одного элемента (скажем, пункта 3) запустит Activity2.Activity2 кнопка возврата после нажатия вернет пользователя к Activity1.Чего я хочу добиться, так это выделить пункт 3, когда пользователь вернется к Activity1, чтобы у пользователя было ощущение, где продолжить.(Может быть, мне нужно также установить фокус на пункт 3.)

РЕДАКТИРОВАТЬ: следующий код работает.

   public void onResume()
{
    super.onResume();

     //lastSelectedPosition saved in OnItemClickListener
    lv.setSelection(lastSelectedPosition);
    lv.requestFocusFromTouch();

}

1 Ответ

2 голосов
/ 01 июля 2011

ну, это довольно просто.просто сохраните позицию выбранного элемента в списке в поле при нажатии на список, чтобы запустить новое действие.

Впоследствии в методе onResume () просто используйте myList.setSelection (SavedPosition);* Что касается выделения, хорошая фокусировка работает довольно плохо, особенно если у вас есть немного более сложные строки (кнопки, флажки и т. д.) и другие элементы пользовательского интерфейса рядом со списком, которые могут убрать фокус.Я считаю, что лучший способ добиться этого - просто установить фон этого конкретного элемента onResume на выделенный и переопределить прослушиватель onScroll, чтобы просто изменить фон по умолчанию при прокрутке списка.на самом деле это обходной путь, но он будет работать в 100% случаев, противоположных фокусировке на предмете.Кроме того, возможно, вы можете добавить анимацию к виду, чтобы он выглядел действительно красиво и плавно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...