Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- jQuery
- Android Apk 이름 변경
- R프로그래밍
- spring
- android fragment
- Android
- Java
- FLUTTER
- Kotlin
- CSS사용법
- release unsigned
- MySQL
- Android Apk 이름
- Exception
- Program type already present
- 안드로이드
- Android Apk
- error
- tomcat
- JavaScript
- fragment
- html
- apache gzip
- java error
- DataTable
- android error
- css
- Firebase
- release Apk
- Eclipse
Archives
- Today
- Total
selfstarter
Android Spinner 사용법 본문
- xml에서 spinner에 widget 생성
<Spinner
android:id="@+id/bought_item_category_spinner"
android:layout_width="0dp"
android:layout_height="wrap_content"
app:layout_constraintTop_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
/>
- spinner에 들어갈 객체 class 생성. key, value 쌍으로 Map처럼 데이터를 사용하기 위해 class를 만든다.
List<CommonSpinner> spinnerItems = new ArrayList<CommonSpinner>();
// TODO : 추가 수정이 가능함에 따라 SEQ가 변할 수 있음. SEQ를 따로 저장해야함
spinnerItems.add(new CommonSpinner(1000, "음료"));
spinnerItems.add(new CommonSpinner(1001, "건강식품"));
spinnerItems.add(new CommonSpinner(1002, "수입과자"));
spinnerItems.add(new CommonSpinner(1003, "과자"));
spinnerItems.add(new CommonSpinner(1004, "간식"));
spinnerItems.add(new CommonSpinner(1005, "채소"));
spinnerItems.add(new CommonSpinner(1006, "쌀"));
spinnerItems.add(new CommonSpinner(1007, "육류"));
spinnerItems.add(new CommonSpinner(1008, "닭고기"));
spinnerItems.add(new CommonSpinner(1009, "냉동식품"));
ArrayAdapter<CommonSpinner> categoryAdapter = new ArrayAdapter<CommonSpinner>(getContext(), android.R.layout.simple_spinner_item , spinnerItems);
categoryAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
itemCategorySpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
CommonSpinner spinnerItem = (CommonSpinner)adapterView.getItemAtPosition(i);
Log.d(TAG, "key:"+spinnerItem.getKey());
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
}
});
itemCategorySpinner.setAdapter(categoryAdapter);
public class CommonSpinner {
private int key; // key가 seq를 의미
private String value;
public CommonSpinner(int key, String value) {
this.key = key;
this.value = value;
}
public int getKey() {
return key;
}
@Override
public String toString() {
return value;
}
}
- ArrayAdapter가 우리가 만든 CommonSpinner 객체를 저장하고 spinner와 ArrayAdapter를 연결한다. android.R.layout.simple_spinner_item은 기본적으로 android에 내장되어있는 spinner Item layout이다. 마치 Listview에서 adapter holder를 만들지 않으면 하나의 text만 있는 기본 ListViewItem을 보여주는 것처럼 말이다. 즉 ListViewItem처럼 spinnerItem도 layout으로 커스터마이징 할 수 있다.
List<CommonSpinner> spinnerItems = new ArrayList<CommonSpinner>();
spinnerItems.add(new CommonSpinner(1000, "음료"));
spinnerItems.add(new CommonSpinner(1001, "건강식품"));
spinnerItems.add(new CommonSpinner(1002, "수입과자"));
ArrayAdapter<CommonSpinner> categoryAdapter = new ArrayAdapter<CommonSpinner>(getContext(), android.R.layout.simple_spinner_item , spinnerItems);
categoryAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
itemCategorySpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
CommonSpinner spinnerItem = (CommonSpinner)adapterView.getItemAtPosition(i);
Log.d(TAG, "key:"+spinnerItem.getKey());
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
}
});
itemCategorySpinner.setAdapter(categoryAdapter);
- Spinner Item을 Map처럼 사용하지 않는다면 values에 array.xml을 만들어서 보여주기만 할 수 있다. ArrayAdapter.createFromResource 함수를 사용하는데, ArrayAdapter를 생성할 때와 달리 2번째 인자는 array.xml에서 선언한 array의 id, 세번째로 Layout Id를 넣어준다.
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="itemTypeCategoryValue">
<item>음료</item>
<item>과일</item>
</string-array>
</resources>
ArrayAdapter<CharSequence> categoryAdapter = ArrayAdapter.createFromResource(getContext(), R.array.itemTypeCategoryValue, android.R.layout.simple_spinner_item);
categoryAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
itemCategorySpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
}
});
itemCategorySpinner.setAdapter(categoryAdapter);
'App > Android' 카테고리의 다른 글
갤러리에 이미지 저장 (0) | 2020.07.22 |
---|---|
Android Image Path 가져오기 (0) | 2020.07.21 |
에러해결 Android toolchain - develop for Android devices (Android SDK version 29.0.3) (0) | 2020.07.04 |
Flutter 기본사항 정리 (0) | 2020.06.29 |
Flutter SDK, Android, VSCode 설치 (0) | 2020.06.29 |
Comments