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>