Spinner가 선택한 항목 값을 문자열로 가져 오는 방법은 무엇입니까?


81

스피너가 5 개 있습니다. 이것에 대한 요약을 만들기 위해.

이것은 xml의 Spinner입니다.

<Spinner
            android:id="@+id/text_interested"
            android:layout_span="2"
            android:layout_width="wrap_content"
            android:layout_height="60px"
            android:entries="@array/interestedarrays"
            android:prompt="@string/interestedprompt" />

이것은 Java의 Spinner입니다.

submitbtn.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
interested.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
                        public void onItemSelected(
                                AdapterView<?> adapterView, View view,
                                int i, long l) {
                            interesting = interested.getItemAtPosition(i).toString();
                        }

                        public void onNothingSelected(
                                AdapterView<?> adapterView) {

                        }
                    });
    }
});

여기에 설명 :

페이지에 버튼이 있습니다. 이 버튼을 누르면 스피너에서 데이터를 읽습니다. 나는 이것으로 출력을 확인했다.

System.out.println(interested.getItemAtPosition(i).toString());

그것은 나에게 아무것도주지 않았다.

값을 검색하고 문자열을 지정하는 방법은 무엇입니까?


나는, 당신은 할 때마다 버튼을 사용자가 클릭 스피너의 항목을 반드시 선택 원하는 있어요
Paresh Mayani

버튼의 onClick 외부에서 setOnItemSelectedListener를 설정하고 Onclick 메소드 내부에서이 interest.getSelectedItem (). toString ();
KK_07k11A0585

덕분에, 내 실수 버튼 리스너 내부의 수신기를 넣어 그 이유를 전혀 응답하지
앨런 라이

1
환영 API 데모를 탐구 :) ... U가 더 좋은 예제를 얻을 수 있습니다
KK_07k11A0585

답변:


225

이 시도:

String text = mySpinner.getSelectedItem().toString();

이와 같이 다양한 스피너에 대한 가치를 얻을 수 있습니다.


27
String Text = mySpinner.getSelectedItem().toString();

또는

mySpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
    public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
        Object item = parent.getItemAtPosition(position);
    }
    public void onNothingSelected(AdapterView<?> parent) {
    }
});

하지만 아이템 0을 얻는 방법?!
Alok Rajasukumaran

11

Spinner에서 선택한 항목은 다음을 사용하여 가져올 수 있습니다.

interested.getSelectedItem().toString();

7

Spinner가 SQLite 커서로 채워진 경우 솔루션은 다음과 같습니다.

Spinner mySpin = (Spinner) findViewById(R.id.myspin);
mySpin.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {  
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
           SQLiteCursor item = (SQLiteCursor) parent.getItemAtPosition(position);
           String value = String.valueOf(item.getString(0));
           Toast.makeText(getApplicationContext(), "The option is:" + value , Toast.LENGTH_SHORT).show(); 
 }

추신 : In- item.getString(0)> 0은 가져 오려는 커서의 열 인덱스입니다.


잘 작동합니다. onItemSelected 멤버 외부에서 "값"을 어떻게 사용합니까?
MarkT

6

이 시도

 final Spinner cardStatusSpinner1 = (Spinner) findViewById(R.id.text_interested);
    String cardStatusString;
    cardStatusSpinner1.setOnItemSelectedListener(new OnItemSelectedListener() {

        @Override
        public void onItemSelected(AdapterView<?> parent,
                View view, int pos, long id) {
            cardStatusString = parent.getItemAtPosition(pos).toString();
        }

        @Override
        public void onNothingSelected(AdapterView<?> arg0) {
            // TODO Auto-generated method stub

        }
    });

 final Button saveBtn = (Button) findViewById(R.id.save_button);
    saveBtn .setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub

            System.out.println("Selected cardStatusString : " + cardStatusString ); //this will print the result
        }
    });

6

Kotlin으로 선택한 항목 가져 오기 :

spinner.selectedItem.toString()

5

제안 된 것 외에도

String Text = mySpinner.getSelectedItem().toString();

넌 할 수있어,

String Text = String.valueOf(mySpinner.getSelectedItem());

3

스피너에서 값을 선택하면 선택된 값을 얻습니다.

interested.getSelectedItem().toString();

3

버튼을 클릭하면 스피너의 선택된 항목을 원한다고 생각합니다 ..

getSelectedItem () 시도하십시오 .

spinner.getSelectedItem()

2

이를 수행하는 가장 좋은 방법은 다음과 같습니다.

String selectedItem = spinner.getSelectedItem().toString();

여기에서 문서를 참조 할 수 있습니다. Spinners



2

Android 개발의 최신 언어는 Kotlin입니다. 다음은 익명 객체를 사용하여 Kotlin에서 수행하는 방법입니다.

spinnerName?.onItemSelectedListener = object : AdapterView.OnItemSelectedListener{
    override fun onNothingSelected(parent: AdapterView<*>?) {
       println("Nothing Selected")
    }

    override fun onItemSelected(parent: AdapterView<*>?, view: View?, position: Int, id: Long) {
       val selectedString = yourList[position]
    }

}

코 틀린에 대해 아무도 물어 보지 않았습니다.
user3099225

1

내가 사용하는 어댑터 개체에 SpinnerAdapter를 구현하여 interested.getItem(i).toString()


0
    spinnerType = (AppCompatSpinner) findViewById(R.id.account_type);
    spinnerType.setPrompt("Select Type");

    spinnerType.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
            TypeItem clickedItem = (TypeItem) parent.getItemAtPosition(position);
            String TypeName = clickedItem.getTypeName();
            Toast.makeText(AddAccount.this, TypeName + " selected", Toast.LENGTH_SHORT).show();
        }

        @Override
        public void onNothingSelected(AdapterView<?> parent) {

        }
    });
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.