Ну, из моего опыта getItem(int position)
возвращает то, что вы хотите, чтобы он вернулся. Вы можете видеть, что тип возврата метода - Object
, поэтому вы можете отправить что-либо из этого метода. Теперь, если я не ошибаюсь, ваша потребность в щелчке каждого элемента ListView, вы хотите получить текст элемента, а getItem(int position)
- это именно то, что вам нужно.
Предположим, у вас есть архаист по имени listViewText
. После этого вы можете определить выше метод как
@Override
public Object getItem(int position){
return listViewText.get(position);
}
и от активности вызовов вы можете вызвать его, когда элемент щелкнуло
String listItemText;
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
listItemText=adapter.getItem(position);
}
});
где адаптер вашего ListView адаптер
Update
Это было для адаптеров ListView. Теперь о вашей путанице в отношении FragmentStatePagerAdapter
, я думаю, что документация пытается сказать, что, чтобы уменьшить потребление памяти, как в FragmentPagerAdapter
, адаптер использует метод getItem(int position)
только в начале, когда нет состояния фрагмента. , Это означает, что первый фрагмент загружен. Теперь, когда конкретный фрагмент откручивается, адаптер сохраняет текущие состояния фрагмента (содержимого и т. Д.), И, когда позже фрагмент будет прокручен, адаптер восстановит сохраненные состояния, а не создаст новый фрагмент, и, следовательно, вызовет только этот метод один раз.
Обратите внимание, что адаптер может также вызывать getItem(int position)
, если каким-то образом теряется состояние конкретного фрагмента.
@i не понял ваши требования. У вас возникли какие-либо проблемы с просмотром пейджера, который не нашел текущий активный фрагмент? – Ramesh
хорошо, подобный. Я не совсем понимаю, как слова пейджера. Как они «адаптируют» другой фрагмент? –
Если вам нужна текущая ссылка на фрагмент, то перейдите с помощью find по тегу – Ramesh