텍스트보기 대신 Spinner 위젯에서 자신의보기를 보여주는 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/2453465

  •  20-09-2019
  •  | 
  •  

문제

스피너 위젯을 사용하여 일부 항목에 대한 선택이 있습니다. 현재 스피너는 간단한 텍스트 뷰를로드하고 항목의 이름을 표시합니다.
스피너 행 내부에 표시하기 위해 자체 뷰를 정의 할 수 있습니까? 사용자 정의 목록 행과 비슷하다고 생각합니다.

목록의 각 항목에 대한 스피너 텍스트에서 남은 개별 아이콘을 표시하고 싶습니다.

도움이 되었습니까?

해결책

예, 당신은 그렇게 할 수 있습니다 - 아시다시피, Spinner 유형입니다 AdapterView, 이는 자신의 데이터를 적용하여 그러한 것으로 표시 할 수 있음을 의미합니다. View.

접근 방식은이 접근 방식과 매우 유사합니다 ListView. 아파 데모에서 발췌 :

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_spinner_item, INTERPOLATORS);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
s.setAdapter(adapter);

자신의 레이아웃을 정의하고 전달할 수 있습니다. SpinnerAdapter 사용하는 서브 클래스.

다른 팁

예, 매우 쉽습니다.

가장 중요한 것은 텍스트보기를 레이아웃 파일의 루트 요소로 정의한다는 것입니다.
다음과 같이하십시오 :

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_spinner_item, INTERPOLATORS);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
s.setAdapter(adapter);


simple_spinner_dropdown_item.xml 파일 :

<?xml version="1.0" encoding="utf-8"?>
<TextView>
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="50px"
    android:textColor="#000000"
    android:textSize="20px"
    android:gravity="center_vertical" >
</TextView>
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top