2011-12-18 10 views
1

switch文の変数の値をスピナーで変更しようとしています。しかし、変数はデフォルト値に固執しています。 switch文を使ったコードと、その変数の使い方を以下に示します。Switch文が切り替わらない

final Spinner feedbackSpinner = (Spinner) 
    findViewById(R.id.SpinnerFeedbackType); 

    String RSSFEEDOFCHOICE; 
    switch((int)feedbackSpinner.getSelectedItemId()) {  
     case R.string.groep1: 
     RSSFEEDOFCHOICE = "https://www.scouting.nl/publiek/nieuws?format=feed&type=rss"; 
     break; 
     case R.string.groep2: 
     RSSFEEDOFCHOICE = "https://www.scouting.nl/publiek/nieuws?format=feed&type=rss"; 
     break; 
     case R.string.groep3: 
     RSSFEEDOFCHOICE = "https://www.scouting.nl/publiek/nieuws?format=feed&type=rss"; 
     break; 
     case R.string.groep4: 
     RSSFEEDOFCHOICE = "https://www.scouting.nl/publiek/nieuws?format=feed&type=rss"; 
      break; 
     default:   
      RSSFEEDOFCHOICE = "http://www.scout.org/rss/feed/all"; 
      break; 
    } 


    // get rss feed 
    feed = getFeed(RSSFEEDOFCHOICE); 

    UpdateDisplay(); 
     } 

private RSSFeed getFeed(String urlToRssFeed) 

RSSフィードが変更されない理由変数が変更されている必要がありながら、私はちょうど、得ることはありません。

+0

これは、StackOverflowの質問にはあまりにも多くのコードです。これを最小限に抑えてください(http://sscce.orgを参照)。 –

+0

実際にコードが実行されていると思ったときにコードが実際に実行されることを確認しましたか? –

+0

何をしようとしていますか? switchステートメントはonCreateメソッド内にあります。これは、アクティビティが作成されたときに一度呼び出されます。そこには意味がありません。 – aromero

答えて

2

R.String。あなたのstrings.xmlの中にある文字列ではなく、リソースのIDを返します。したがって、比較は失敗します。代わりにgetString(R.string.hello)を使用して、switchステートメントの型キャストをintに削除することができます。

+0

しかし、値は文字列になります。switch文では処理できないので、型キャストの理由はintになります。 –

+0

その場合は、strings.xmlに文字列を格納するためにstring-arrayを使用し、getItemAtPosition(pos)でswitchを使用できます。 R.String.xyzの代わりに整数の位置(1,2,3など)を書く必要があります。 –

関連する問題