2010-11-20 5 views
2

Android에서 Spinner를 사용하려고합니다. 그것은 잘 표시하고 목록에서 옵션 중 하나를 선택할 수 있습니다. 그러나 어떻게 그것을 문자열로 전송합니까? 나는 아래 코드에서 'selected'가 선택된 문자열을 보유 할 것이라고 생각 했겠지만 로컬 클래스 YourItemSelectedListener에 대해 'Illegal modifier'가 표시됩니다. 'AbstractItemSelectedListener'에 추상 또는 최종 허용 만됨 '오류가 표시됩니다. 내가 뭘 잘못하고 있니? 도움을 주셔서 감사합니다.Android에서 값으로 Spinner 선택 사용

Spinner spinnerFPS = (Spinner) findViewById(R.id.sp_FPS); 
     ArrayAdapter adapter = ArrayAdapter.createFromResource(
       this, R.array.framesps, android.R.layout.simple_spinner_item); 
     adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
     spinnerFPS.setAdapter(adapter); 
     spinnerFPS.setOnItemSelectedListener(new YourItemSelectedListener()); 


     public class YourItemSelectedListener implements OnItemSelectedListener { 

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

      public void onNothingSelected(AdapterView parent) { 
       // Do nothing. 
      } 
     } 

답변

1

스피너 getResources().getStringArray(R.array.framesps);

현지 어레이 선언 리소스 핸들 를 생성하고, 그 위치 변수를 사용하여 상기 선택된 아이템을 액세스하기 위해 그 핸들을 사용하도록 사용자가 배열 리소스를 사용하고 있기 :

items[pos] 

코드 편집 :

Spinner spinnerFPS = (Spinner) findViewById(R.id.sp_FPS); 
    String[] items=getResources().getStringArray(R.array.framesps);//handle to your arrays 
ArrayAdapter adapter = ArrayAdapter.createFromResource(
      this, items, android.R.layout.simple_spinner_item); 
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    spinnerFPS.setAdapter(adapter); 
    spinnerFPS.setOnItemSelectedListener(new YourItemSelectedListener()); 


    public class YourItemSelectedListener implements OnItemSelectedListener { 

     public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) { 
      String selected =items[pos]; // use handler to access select item 
     } 

     public void onNothingSelected(AdapterView parent) { 
      // Do nothing. 
     } 
    } 
+0

내가 'createFromResource'에 다음과 같은 오류가 지금 시도하고있다 : 유형 ArrayAdapter와의 방법 createFromResource (문맥, INT, INT)는 인수 (TCCalc, 문자열 [], int)를 적용 할 수 없습니다 나는 또한 얻고있다 : 'YourItemSelectedListener는 유형' 으로 마지막으로 해결할 수 없다 [pos] 나는 다음을 얻는다 : 다른 방법으로 정의 된 내부 클래스 내부의 최종 변수가 아닌 항목을 참조 할 수 없다. 나는 회 전자의 일하는 데모를보아야한다. 거기에 진짜 간단한 예제가 있습니까? 건배. – Entropy1024

+0

나는 그걸 해결했으면 좋겠어. 구글 워드 프로세서 웹 사이트 – Shardul

+0

에서 코드를 체크 아웃 할 수있다. 문제는 첫 번째 항목이 자동으로 선택되고 반복적으로 선택하면 이벤트가 발생하지 않는다는 것이다. 첫 번째 항목이 선택되지 않도록하기 위해 회 전자를 -1 색인으로 설정하는 방법이 없으므로이 유형의 응용 프로그램에서는 효과적으로 사용할 수 없습니다. 안드로이드 코더가이 문제를 해결하는 것은 아주 간단한 작업입니다. –

3
ArrayAdapter adapter = ArrayAdapter.createFromResource(
     this, items, android.R.layout.simple_spinner_item); 

CurrentActivityName.this을 추가해야합니다. 이렇게하면 문제가 해결됩니다. 인수 컨텍스트를 this으로 전달할 수 없습니다. ActivityName.this을 입력해야합니다.