2013-04-08 4 views
0

버튼을 클릭하면 안드로이드 프로그래밍에 익숙하지 않고 문자열 값 "채널"을 변경하는 데 어려움이 있습니다. onCreate를 닫으려고 할 때 문제가 발생하지만 활동이 끝나면 끝내야합니다. 'token'오류가 발생합니다. 내가 다른 곳에 그것을 닫으려고하면 '삭제하십시오. 아마 아주 간단 할지라도 이것으로 머리를 감싸려고 힘든 시간을 보내고 있습니다.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 피드를 변경하려는 것으로 생각됩니다. 그러나 onCreate에서 RSS 정보를 가져 오는 중이므로 버튼을 눌러도 데이터를 업데이트하지 않습니다. 그러나 문자열 채널의 값을 변경하고 있습니다.

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

관련 문제