2011-12-17 4 views
0

私はスピナーを持っています。今、私はif文のスピナーからの変数を比較したいと思います。そして、私は変数を変更したいのですが、変数を変更することはできません。ここ は私のスピナーからのコードです:statmentからの変数が機能しない

public class RSSReaderscoutingnl extends Activity implements OnItemClickListener{ 
public final String tag = "RSSReaderscoutingnl"; 
private RSSFeed feed = null; 
private String RSSFEEDOFCHOICE; 

/** Called when the activity is first created. */ 

public void onCreate(Bundle icicle) { 
    super.onCreate(icicle); 
    setContentView(R.layout.main); 

     final Spinner feedbackSpinner = (Spinner)  
findViewById(R.id.SpinnerFeedbackType); 
     final String groep = feedbackSpinner.getSelectedItem().toString(); 

     if (groep.equals("groep1")) { 
      RSSFEEDOFCHOICE = "http://www.scout.org/rss/feed/all"; 
     } 
     else if (groep.equals("groep2")) { 
      RSSFEEDOFCHOICE = "http://www.scout.org/rss/feed/all"; 
     } 
     else if (groep.equals("groep3")) { 
      RSSFEEDOFCHOICE = "http://www.scout.org/rss/feed/all"; 
     } 
     else if (groep.equals("groep4")) { 
      RSSFEEDOFCHOICE = "http://www.scout.org/rss/feed/all"; 
    } 

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

    UpdateDisplay(); 
     } 

private RSSFeed getFeed(String urlToRssFeed) 
{ 
    try 
    { 
     // setup the url 
     URL url = new URL(urlToRssFeed); 

     // create the factory 
     SAXParserFactory factory = SAXParserFactory.newInstance(); 
     // create a parser 
     SAXParser parser = factory.newSAXParser(); 

     // create the reader (scanner) 
     XMLReader xmlreader = parser.getXMLReader(); 
     // instantiate our handler 
     RSSHandler theRssHandler = new RSSHandler(); 
     // assign our handler 
     xmlreader.setContentHandler(theRssHandler); 
     // get our data via the url class 
     InputSource is = new InputSource(url.openStream()); 
     // perform the synchronous parse   
     xmlreader.parse(is); 
     // get the results - should be a fully populated RSSFeed instance, or null on error 
     return theRssHandler.getFeed(); 
    } 
    catch (Exception ee) 
    { 
     // if we have a problem, simply return null 
     return null; 
    } 
} 

private void UpdateDisplay() 
{ 
    TextView feedtitle = (TextView) findViewById(R.id.feedtitle); 
    TextView feedpubdate = (TextView) findViewById(R.id.feedpubdate); 
    ListView itemlist = (ListView) findViewById(R.id.itemlist); 


    if (feed == null) 
    { 
     feedtitle.setText("No RSS Feed Available"); 
     return; 
    } 

    feedtitle.setText(feed.getTitle()); 
    feedpubdate.setText(feed.getPubDate()); 

    ArrayAdapter<RSSItem> adapter = new ArrayAdapter<RSSItem> 
(this,android.R.layout.simple_list_item_1,feed.getAllItems()); 

    itemlist.setAdapter(adapter); 

    itemlist.setOnItemClickListener(this); 

    itemlist.setSelection(0); 

} 


public void onItemClick(AdapterView parent, View v, int position, long id) 
{ 
    Log.i(tag,"item clicked! [" + feed.getItem(position).getTitle() + "]"); 

    Intent itemintent = new Intent(this,ShowDescription.class); 

    Bundle b = new Bundle(); 
    b.putString("title", feed.getItem(position).getTitle()); 
    b.putString("description", feed.getItem(position).getDescription()); 
    b.putString("link", feed.getItem(position).getLink()); 
    b.putString("pubdate", feed.getItem(position).getPubDate()); 

    itemintent.putExtra("android.intent.extra.INTENT", b); 

    startActivityForResult(itemintent,0); 
} 

} 

私はちょうどそれがRSSFEEDOFCHOICEを変更することができません。

<resources> 
<string name="app_name">Groep kiezer</string> 
<string name="Mijngroep">Selecteer jouw groep</string> 
<string name="groep1">Admiraal kruysgroep</string>  
<string name="groep2">Admiraal van Kinsbergen</string> 
<string name="groep3">Alexandergroep</string> 
<string name="groep4">Anthonie van diemenstam</string> 
</resources> 

そして、ここでは、それが比較されます魔女内のファイル(簡単なRSSリーダー)です。私は誰かが私を助けることを願っています。

+1

私はわからないんだけど、(feedbackSpinner.getSelectedItemません)のtoString()例えば、文字列を返します。 "groep3"ではなく "Alexandergroep"ですか?とにかく、いつでもLog.d( "test"、 "string is:" + groep)を置くことができます。 if文の前に、期待される文字列があることを確認してください。 – Jave

答えて

0

はコールgetSelectedItemIdとIDと比較し、文字列ではありません:

switch(feedbackSpinner.getSelectedItemId()) { 
// edit: forgot this one    ^
    case R.string.groep1: 
    case R.string.groep2: 
    case R.string.groep3: 
    case R.string.groep4: 
     RSSFEEDOFCHOICE = "http://www.scout.org/rss/feed/all"; 
     break; 
    default: 
     break; 
} 
+0

これを試してみましたが、今度は 'String型の値をスイッチできません。変換可能なint値またはenum定数のみが許可されています 'これについて何ができますか? –

+0

@ user1090959 - あなたは 'getSelectedItemId'を使用しましたか? Stringではなくlongを返します。 – MByD

+0

私は上記のコードを貼り付けてコピーしました:\t final Spinner feedbackSpinner =(Spinner)findViewById(R.id.SpinnerFeedbackType); \t \tスイッチ(feedbackSpinner.getSelectedItemId(){ \t場合R.string.groep1: \t場合R.string.groep2: \t場合R.string.groep3: \t場合R.string.groep4: \t RSSFEEDOFCHOICE =「http://www.scout.org/rss/feed/all」; \tブレーク; \tデフォルト:。 \tブレーク;私は1 parenthasisを逃したためだ –

関連する問題