티스토리 뷰
Stack Overflow에 자주 검색, 등록되는 문제들과 제가 개발 중 찾아 본 문제들 중에서 나중에도 찾아 볼 것 같은 문제들을 정리하고 있습니다.
Stack Overflow에서 가장 먼저 확인하게 되는 가장 높은 점수를 받은 Solution과 현 시점에 도움이 될 수 있는 가장 최근에 업데이트(최소 점수 확보)된 Solution을 각각 정리하였습니다.
아래 word cloud를 통해 이번 포스팅의 주요 키워드를 미리 확인하세요.
How to set selected item of Spinner by value, not by position?
Spinner에서 선택한 아이템을 위치가 아닌 값으로 설정하는 방법은 무엇인가요?
문제 내용
I have a update view, where I need to preselect the value stored in database for a Spinner.
저는 업데이트 뷰가 있고, 거기에서 Spinner에 저장된 데이터베이스의 값이 미리 선택되어야 하는 상황입니다.
I was having in mind something like this, but the Adapter
has no indexOf
method, so I am stuck.
저는 Spinner에서 특정 값(value)을 가진 아이템을 선택하기 위해 아래와 같이 코드를 작성해 보았는데, 어댑터에는 `indexOf` 메소드가 없어서 진행이 안 되고 있습니다.
void setSpinner(String value)
{
int pos = getSpinnerField().getAdapter().indexOf(value);
getSpinnerField().setSelection(pos);
}
높은 점수를 받은 Solution
Suppose your Spinner
is named mSpinner
, and it contains as one of its choices: "some value".
가정해보자면, Spinner가 mSpinner로 명명되어 있고, "some value"가 선택지 중 하나로 포함되어 있다고 하자.
To find and compare the position of "some value" in the Spinner use this:
Spinner에서 "some value"의 위치를 찾고 비교하려면 다음을 사용합니다:
String compareValue = "some value";
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.select_state, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
mSpinner.setAdapter(adapter);
if (compareValue != null) {
int spinnerPosition = adapter.getPosition(compareValue);
mSpinner.setSelection(spinnerPosition);
}
가장 최근 달린 Solution
You can use this way, just make your code more simple and more clear.
이 방법을 사용하면 코드를 더 간단하고 명확하게 만들 수 있습니다.
ArrayAdapter<String> adapter = (ArrayAdapter<String>) spinnerCountry.getAdapter();
int position = adapter.getPosition(obj.getCountry());
spinnerCountry.setSelection(position);
Hope it helps.
희망사항을 드리겠습니다.
출처 : https://stackoverflow.com/questions/2390102/how-to-set-selected-item-of-spinner-by-value-not-by-position
'개발 > 안드로이드' 카테고리의 다른 글
AppCompat에서 전체 화면 적용하기 (0) | 2023.02.02 |
---|---|
AsyncTask deprecated 이후 대안 솔루션 (0) | 2023.02.02 |
부모 액티비티에 데이터 전달하기 (0) | 2023.02.01 |
카메라로 이미지를 캡처하고 액티비티에 표시하기 (0) | 2023.02.01 |
ScrollView 안에 RecyclerView 적용하기 (0) | 2023.02.01 |