2010-11-20 13 views
2

私はSpinnerをAndroidで動作させようとしています。それはうまく表示され、私はリストのオプションのいずれかを選択することができます。しかし、私はどのように文字列にそれを転送するのですか? 私は、選択された文字列を保持する 'selected'が下のコードでは考えましたが、ローカルクラスYourItemSelectedListenerに対して 'Illegal modifier'が返されます。 'YourItemSelectedListener'には抽象または最終のみが許可されています 'エラーが表示されます。 私は何が間違っていますか? ご協力いただきありがとうございます。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

'YourItemSelectedListenerをタイプに解決できません' 最後にアイテム[pos]を取得しました。 別のメソッドで定義された内部クラス内の最終的でない変数アイテムを参照することはできません。 私はSpinnerのデモンストレーションを見て、何が起こっているのか頭を浮かべるのを助ける必要があります。本当の簡単な例がありますか?乾杯。 – Entropy1024

+0

私はうまくいけば、あなたはいつでもGoogleドキュメントのウェブサイト – Shardul

+0

からコードをチェックアウトすることができます。この問題は、最初のアイテムが自動的に選択され、それを繰り返し選択するとイベントが発生しません。最初の項目が選択されないようにするために、スピナーを-1のインデックスに設定する方法はないため、このタイプのアプリケーションでは効果的ではありません。アンドロイドコーダーがこれを修正するのは非常に簡単な作業です。 –

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

CurrentActivityName.thisを追加する必要があります。これで問題は解決します。あなたは単に引数コンテキストをthisとして渡すことはできません。 ActivityName.thisを入力する必要があります。 をArrayAdapterは、引数には適用されません(TCCalc、String []型、int)をタイプで メソッドcreateFromResource(コンテキスト、int型、int型):私はそれを試してみましたが、今 'createFromResource' に関する次のエラーを取得している

関連する問題