텍스트보기 대신 Spinner 위젯에서 자신의보기를 보여주는 방법은 무엇입니까?
문제
스피너 위젯을 사용하여 일부 항목에 대한 선택이 있습니다. 현재 스피너는 간단한 텍스트 뷰를로드하고 항목의 이름을 표시합니다.
스피너 행 내부에 표시하기 위해 자체 뷰를 정의 할 수 있습니까? 사용자 정의 목록 행과 비슷하다고 생각합니다.
목록의 각 항목에 대한 스피너 텍스트에서 남은 개별 아이콘을 표시하고 싶습니다.
해결책
예, 당신은 그렇게 할 수 있습니다 - 아시다시피, 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>
제휴하지 않습니다 StackOverflow