2013-02-14 1 views
3

AlertDialog에있는 항목 목록이 많습니다. 나는 가장 가능성있는 영역으로 스크롤되는 목록을 사용자에게 제시하고 싶습니다. 나는 선택으로 항목을 제시 논리적으로 정확하지 때 항목으로 스크롤하는 방법이다와 내가 힘든 시간을 보내고 있습니다선택 항목없이 AlertDialog의 목록 항목으로 스크롤

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

문제를 사용하고 있습니다.

나는 AlertDialog에서 ListView을 얻으려고 시도했다. 그러나 그것은 비어 있습니다 (Builder가 생성하고 보여준 후에도 마찬가지입니다).
res/layout에 ListView 평면을 부 풀려서 채워진 ListView을 강제로 시도했습니다. listView.scrollTo(x, y)는 효과가없는 것 같습니다.
AlertDialog에 OnShowListener을 설정하려고했습니다. onShow()이 호출되지 않습니다.

해결 방법이 있습니까?

+0

AlertDialog에 대한 코드를 게시 할 수 있습니까? 나는 당신이하려고하는 것에 대해서 조금 혼란스러워합니다. –

+0

@BenBenard 도움을 주셔서 감사합니다. 나는 전략을 바꿨다. 나는 접을 수있는 목록을 만들었습니다. – stephen

답변

2

당신리스트 뷰 클래스의 일부 기능을 사용할 수 있습니다

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

하지만 AlertDialog에서 listView를 가져 오는 방법은 무엇입니까? 내가 말했듯이, AlertDialog에서 listView를 얻으려고하면 목록이 비어 있습니다. – stephen

+1

하나의 질문에 하나의 질문을 두어야합니다. 그렇지 않으면 끝이 없습니다. http://android-vogue.blogspot.in/2011/12/android-alert-dialog-with-listview-and.html –

+0

내 질문에 대한 답변을 명확히하려고 노력했습니다. 범위를 벗어난 것이 아닙니다. 나는 AlertDialog의 ListView가 OP에서 비어 있다고 말했다. ListView가 어디에 묻힐 지 모르겠습니다. 링크를 가져 주셔서 감사합니다. – stephen

관련 문제