2013-04-08 2 views
0

Незначительно новое для программирования на Android и проблема с изменением строкового значения «канал» при нажатии кнопки. Имея проблемы, пытающиеся закрыть 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', а другой - для класса. Я отформатировал ваш код, чтобы вы могли видеть его лучше. –

+1

попытаться скопировать полный код, удалить код и вставить код. CTRL + A, CTRL + C, CTRL + A, DELETE CTRL + V. –

ответ

0

Я предполагаю, что вы хотите изменить канал RSS при нажатии кнопки. Но поскольку вы загружаете информацию RSS в onCreate, вы не будете обновлять данные, даже если вы нажимаете кнопки. Но вы меняете значение строкового канала.

onCreate вызывается только один раз, когда вы создаете действие!

Попробуйте переместить try-statement в отдельный метод и вызовите этот метод в двух ваших 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

Смежные вопросы