나는 안드로이드 프로젝트에서 일하고 있으며 데이터베이스에서 채워지는 배열 어댑터를 사용하는 스피너를 사용하고 있습니다.
선택한 항목을 프로그래밍 방식으로 목록에서 설정하는 방법을 찾을 수 없습니다. 예를 들어, 스피너에 다음 항목이있는 경우 :
- 카테고리 1
- 카테고리 2
- 카테고리 3
화면을 만들 때 프로그래밍 방식으로 범주 2를 선택한 항목으로 만드는 방법은 무엇입니까? 나는 그것이 C # IE Spinner.SelectedText = “Category 2″와 비슷할 것이라고 생각했지만 Android에서는 이와 비슷한 방법이없는 것 같습니다.
답변
다음을 사용하십시오
spinnerObject.setSelection(INDEX_OF_CATEGORY2)
..
답변
이 답변 중 어느 것도 나에게 해결책을주지 못했습니다.
mySpinner.post(new Runnable() {
@Override
public void run() {
mySpinner.setSelection(position);
}
});
답변
public static void selectSpinnerItemByValue(Spinner spnr, long value) {
SimpleCursorAdapter adapter = (SimpleCursorAdapter) spnr.getAdapter();
for (int position = 0; position < adapter.getCount(); position++) {
if(adapter.getItemId(position) == value) {
spnr.setSelection(position);
return;
}
}
}
위와 같이 사용할 수 있습니다 :
selectSpinnerItemByValue(spinnerObject, desiredValue);
& 당신은 또한 같은 인덱스로 직접 선택할 수 있습니다
spinnerObject.setSelection(index);
답변
일부 설명 (적어도 조각에 대해서는 순수한 활동으로 시도하지 마십시오). 누군가 안드로이드를 더 잘 이해하는 데 도움이되기를 바랍니다.
Arun George의
가장 인기있는 답변 은 정확하지만 경우에 따라 작동하지 않습니다. Marco HC
의 답변 은 Runnable을 사용하는 것이 추가 CPU로드로 인한 마지막 수단입니다.
대답은 -setSelection ()을 호출 할 올바른 장소를 선택 해야한다는 것 입니다. 예를 들어 저에게 효과적 입니다.
@Override
public void onResume() {
super.onResume();
yourSpinner.setSelection(pos);
}
그러나 onCreateView ()에서는 작동하지 않습니다 . 나는 이것이이 주제에 관심이있는 이유라고 생각합니다.
비밀은 안드로이드를 사용하면 어떤 방법 으로든 원하는 작업을 수행 할 수 없다는 것입니다. 여기 에 답을 보십시오 )
답변
값을 찾아서 선택하려면 다음을 수행하십시오.
private void selectValue(Spinner spinner, Object value) {
for (int i = 0; i < spinner.getCount(); i++) {
if (spinner.getItemAtPosition(i).equals(value)) {
spinner.setSelection(i);
break;
}
}
}
답변
DB의 값을 사용하여 ArrayList에 저장 한 다음 사용하십시오.
yourSpinner.setSelection(yourArrayList.indexOf("Category 1"));
답변
최적의 솔루션은 다음과 같습니다.
public String[] items= new String[]{"item1","item2","item3"};
// here you can use array or list
ArrayAdapter adapter= new ArrayAdapter(Your_Context, R.layout.support_simple_spinner_dropdown_item, items);
final Spinner itemsSpinner= (Spinner) findViewById(R.id.itemSpinner);
itemsSpinner.setAdapter(adapter);
품목의 위치를 자동으로 얻으려면 다음 진술을 추가하십시오.
itemsSpinner.setSelection(itemsSpinner.getPosition("item2"));