2013-04-08 90 views
0

对于android编程来说是新鲜事物,并且在单击按钮时无法更改字符串值“channel”。尝试关闭onCreate时出现问题,但似乎只能让我在活动结束时关闭它。我收到“令牌”}“的错误。请删除'如果我尝试在其他地方关闭它。尽管这可能非常简单,但我仍然很难将这个问题包括在内。在OnClick中更改字符串值

public class MainActivity extends Activity { 

    String channel = "bbc1"; 

    // This method creates main application view 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 
     // Set view 
     setContentView(R.layout.main); 
     final ViewSwitcher switcher = (ViewSwitcher)findViewById(R.id.ViewSwitcher1); 
     Button bbcButton = (Button) findViewById(R.id.bbcButton); 
     Button bbc2Button = (Button) findViewById(R.id.bbc2Button); 



     bbcButton.setOnClickListener(new OnClickListener(){ 
      public void onClick(View v) { 
       channel = "bbc1"; 
       switcher.showNext();  
      } 
     }); 


     bbc2Button.setOnClickListener(new OnClickListener(){ 
      public void onClick(View v) { 
       channel = "bbc2"; 
       switcher.showNext(); 
      } 
     }); 


     try{ 
      // This line creates RSS reader 
      RssReader rssReader = new RssReader("http://bleb.org/tv/data/rss.php?ch="+channel+"&day=0"); 

      // This line gets a ListView from main view 
      ListView tvItems = (ListView) findViewById(R.id.listMainView); 

      // This line creates a list adapter 
      ArrayAdapter<RssItem> adapter = new ArrayAdapter<RssItem>(this,android.R.layout.simple_list_item_1, rssReader.getItems()); 

      // This line sets list adapter for the ListView 
      tvItems.setAdapter(adapter); 


     } catch (Exception e) { 
      Log.e("Tv RSS Reader", e.getMessage()); 
     } 

    } 
} 
+0

从您发布的代码中,一切似乎都很好。最后的两个结束'}'是'onCreate'方法,另一个是类。我对代码进行了格式化,以便您可以更好地看到它。 – 2013-04-08 13:42:46

+1

尝试复制完整的代码,删除代码并粘贴代码。 CTRL + A,CTRL + C,CTRL + A,DELETE,Ctrl + V。 – 2013-04-08 13:46:05

回答

0

我猜你想在按下按钮时更改RSS提要。但是,由于您正在获取onCreate中的RSS信息,即使按下按钮,也不会更新数据。但是你正在改变字符串频道的价值。

只有在创建活动时才会调用onCreate!

尝试将try语句移入单独的方法,并在两个onClickListeners中调用此方法。

bbc2Button.setOnClickListener(new OnClickListener(){ 
     public void onClick(View v) { 
      channel = "bbc2"; 
      updateRSS(); 
      switcher.showNext(); 
     } 
    }); 

    public void updateRSS(){ 
     try{ 
      // This line creates RSS reader 
      RssReader rssReader = new RssReader("http://bleb.org/tv/data/rss.php?ch="+channel+"&day=0"); 

      // This line gets a ListView from main view 
      ListView tvItems = (ListView) findViewById(R.id.listMainView); 

      // This line creates a list adapter 
      ArrayAdapter<RssItem> adapter = new ArrayAdapter<RssItem>(this,android.R.layout.simple_list_item_1, rssReader.getItems()); 

      // This line sets list adapter for the ListView 
      tvItems.setAdapter(adapter); 


     } catch (Exception e) { 
      Log.e("Tv RSS Reader", e.getMessage()); 
    } 
+0

谢谢!这是一个巨大的帮助。现在总觉得,愚蠢的错误,盯着代码太久,我想哈哈 – HotLovingCoder3 2013-04-08 13:58:51