2013-02-14 3 views
3

У меня есть огромный список предметов, которые я представляю в AlertDialog. Я хотел бы представить пользователю список, прокрутившийся до наиболее вероятной области, из которой они выберут один элемент. Я используюпрокрутите до элемента списка в AlertDialog без выбора

AlertDialog.Builder.setSingleChoiceItems(myAdapter, ...). 
ArrayAdapter<MyType> myAdapter; 

Проблема у меня трудное время с как для прокрутки к пункту, когда это логически не правильно представить этот пункт как выбранный.

Я попытался получить ListView из итогового AlertDialog. Но он пуст (даже после создания и отображения его Builder).
Я попытался загнать заброшенный ListView, раздувая самолет ListView в res/layout. listView.scrollTo(x, y), похоже, не имел эффекта.
Я попытался установить OnShowListener для AlertDialog. onShow() никогда не вызывается.

Кто-нибудь знает о работе вокруг?

+0

Можете ли вы опубликовать часть своего кода для AlertDialog? Я немного смущен тем, что вы пытаетесь сделать. –

+0

@BenBenard Спасибо за помощь. Я изменил свою стратегию. Я организовал складной список. – stephen

ответ

2

Вы можете использовать функции, которые являются частью класса ListView:

smoothScrollByOffset(int offset); 

или

smoothScrollToPosition(int position); 

Или

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

private void scrollToNext() { 
int currentPosition = getListView().getFirstVisiblePosition(); 
if (currentPosition == getListView().getCount() - 1) 
    return; 
getListView().setSelection(currentPosition + 1); 
getListView().clearFocus(); 
} 

private void scrollToPrevious() { 
int currentPosition = getListView().getFirstVisiblePosition(); 
if (currentPosition == 0) 
    return; 
getListView().setSelection(currentPosition - 1); 
getListView().clearFocus(); 
} 
+0

но как получить listView из AlertDialog? Как я уже сказал, когда я попытался получить listView из AlertDialog, список был пуст. – stephen

+1

Вы должны оставить один вопрос на один вопрос, иначе не будет конца. Вы должны проверить http://android-vogue.blogspot.in/2011/12/android-alert-dialog-with-listview-and.html –

+0

Я пытался уточнить ваш ответ на мой вопрос. Это не выходит за рамки. Я заявил, что ListView в AlertDialog был пуст в OP. Я не знаю, где будет похож ListView. Спасибо за ссылку. – stephen

Смежные вопросы