프로그래밍 방식으로 선택한 스피너 항목 설정 어댑터를 사용하는 스피너를 사용하고

나는 안드로이드 프로젝트에서 일하고 있으며 데이터베이스에서 채워지는 배열 어댑터를 사용하는 스피너를 사용하고 있습니다.

선택한 항목을 프로그래밍 방식으로 목록에서 설정하는 방법을 찾을 수 없습니다. 예를 들어, 스피너에 다음 항목이있는 경우 :

  • 카테고리 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"));