0

Android プログラミングにかなり慣れていないため、ボタンをクリックしたときに文字列値「チャンネル」を変更するのに問題があります。onCreate を閉じようとすると問題が発生しますが、アクティビティの最後にのみ閉じることができるようです。「トークン "}」のエラーが発生します。他の場所で閉じようとした場合は削除してください。おそらく非常に単純ですが、これを理解するのに苦労しています。

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());
        }

    }
}
4

1 に答える 1

0

ボタンを押したときにRSSフィードを変更したいと思います。ただし、onCreate で RSS 情報を取得しているため、ボタンを押してもデータは更新されません。しかし、文字列チャネルの値を変更しています。

onCreate は、アクティビティを作成するときに 1 回だけ呼び出されます。

try ステートメントを別のメソッドに移動して、2 つの 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());
    }
于 2013-04-08T13:49:57.717 に答える