1

RSS フィードからデータを読み込み、利用可能なアイテムとその説明を一覧表示する Android アプリを作成しています。ArrayAdaptor を使用するインスタンスが 2 つあります。1つは機能し、1つは機能しません。最初のものは利用可能なフィードを一覧表示し (現在、フィードの URL はハードコードされています)、それは機能します。MainActivity.java

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    this.setContentView(R.layout.main);

    UpdateDisplay();
}

private void UpdateDisplay()
{
    ListView itemlist = (ListView) findViewById(R.id.itemlist);
    java.util.ArrayList<String> channels = new java.util.ArrayList<String>();

    for(int i=0;i<RSS_FEEDS.length;i++){
        channels.add(RSS_FEEDS[i][0]);
    }

    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, channels);
    itemlist.setAdapter(adapter);
    itemlist.setOnItemClickListener(this);
}

2 番目の ArrayAdaptor は、表示するフィードを選択することによって最初の ArrayAdaptor が生成する別のアクティビティで使用されます。RSSFeed が解析され、有効なデータが返されます (Android 環境の外でテストしましたが、動作し、Android で再コンパイルしましたが、まだ動作しているため、RSSParser は問題ではありません)。RSSFeed.java

public void onCreate(Bundle b){
    super.onCreate(b);

    setContentView(R.layout.feedlayout);

    UpdateDisplay();
}

private void UpdateDisplay()
{
    String feedUrl = null;

    Intent startingIntent = getIntent();
    if(startingIntent != null){
        Bundle args = startingIntent.getBundleExtra("android.intent.extra.INTENT");
        if(args != null){
            feedUrl = args.getString("URL");
            feedTitle = args.getString("title");
        }else{
            feedTitle = "No Available RSS Feed";
        }
    }else{
        feedTitle = "Error finding parent Intent";
    }

    ListView lv = (ListView)findViewById(R.id.storylist);

    if(feedUrl != null){
        // Get Feed Items
        RSSFeed feed = getFeed(feedUrl);

        ArrayList<String> values = loadItems(feed);
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,values);

        lv.setAdapter(adapter);
        lv.setOnItemClickListener(this);
    }

    TextView title = (TextView)this.findViewById(R.id.feedtitle);
    title.setText(feedTitle);
    Button backbutton = (Button)findViewById(R.id.backbutton_2);
    backbutton.setOnClickListener(new Button.OnClickListener() {
        public void onClick(View v) {
            finish();
        }
    });

}

私は両方の場所で android.R.layout.simple_list_item_1 レイアウトを使用していますが、最初の場所でしか機能しません。戻るボタンのボタンもなぜか表示されません。これがfeedlayout.xmlファイルです

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<TextView
    android:id="@+id/feedtitle"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    />
<ListView
    android:id="@+id/storylist"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    />
<Button
    android:id="@+id/backbutton_2"
    android:text="Back"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    />
</LinearLayout>
4

1 に答える 1

0

申し訳ありませんが、Adapter のスペルが間違っていることに今気づきました。とにかく、私は自分の質問に対する答えを見つけましたが、まだ戻るボタンが表示されませんが、レイアウトからまとめて削除することにしました。アクティビティを ListActivity に切り替えたところ、問題が解決しました。アクティビティに依存するいくつかの関数呼び出しを切り替えるだけでした =)

于 2010-10-18T02:00:42.430 に答える