2011-10-19 2 views
2

드롭 다운리스트를 동적으로 채우고 싶습니다. 나는 서버에 요청을하고 거기에서 내 데이터를 얻고 내 데이터에 따라 (예를 들어 일부 ID를 가져올 것입니다.) 목록을 더 크고 작게 만들고 싶습니다. 목록에서 이름이 strings.xml의안드로이드는 드롭 다운리스트를 동적으로 채 웁니다.

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <string name="planet_prompt">Choose a planet</string> 
    <string-array name="planets_array"> 
     <item>Mercury</item> 
     <item>Venus</item> 
     <item>Earth</item> 
     <item>Mars</item> 
     <item>Jupiter</item> 
     <item>Saturn</item> 
     <item>Uranus</item> 
     <item>Neptune</item> 
    </string-array> 
</resources> 

전체 코드 here에 기록 된 이후이 developer.android에서 발견 된 예는, 정적이었다.

답변

9
ArrayList<String> options=new ArrayList<String>(); 

options.add("option 1"); 
options.add("option 2"); 
options.add("option 3"); 

// use default spinner item to show options in spinner 
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,options); 
mSpinner.setAdapter(adapter); 

또한 사용하여 선택하는 특정 항목을 설정할 수 있습니다

mSpinner.setSelection(options.indexOf("option 2")); 

편집 :

또한

로 삼았, 스피너 항목을 표시하도록 사용자 지정 XML 파일을 사용할 수 있습니다
ArrayAdapter<String> adapter = new ArrayAdapter<String>(getApplicationContext(), R.layout.custom_spinner_item,options); 
+0

+1 내 대답은 실용적입니다. –

+0

'R.layout.spinner_item'은 무엇입니까? 대신'R.layout.main'을 넣어야합니까? 나는 그것을 넣었고 프로그램이 충돌합니다. 왜 그런지 말해 줄 수 있습니까? – Teo

+0

네 ... 그것은 사용자 정의 레이아웃 XML 파일입니다. 당신도 내 편집을 참조하십시오 default.please를 사용할 수 있습니다. – Hiral

0

ArrayList 모든 개체/문자열을 응답으로 받고 동일한 ArrayList를 사용하여 어댑터를 만드는 것이 좋습니다. 일단 어댑터가 있으면 Spinner 내부에서 쉽게 설정할 수 있습니다.

관련 문제