有关扩展ListActivity的问题

时间:2010-07-02 11:08:18

标签: java android

在我的项目中,每当我扩展活动时,它都可以正常工作,但只要我扩展ListActivity,就会抛出异常并显示找不到的文件。这是为什么?我们已经知道ListActivity本身扩展了Activity类。应用程序必须正常运行。

这是java文件:

package com.android.feedGrabber;

import java.net.URL;
import java.net.URLConnection;
import java.util.Collection;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

import com.sun.cnpi.rss.elements.Item;
import com.sun.cnpi.rss.elements.Rss;
import com.sun.cnpi.rss.parser.RssParser;
import com.sun.cnpi.rss.parser.RssParserFactory;

public class feedGrabber extends Activity {
    public static Collection<Item> readRSSDocument(String url) throws Exception {
                RssParser parser = RssParserFactory.createDefault();
                URL feedUrl = new URL(url);
                URLConnection urlc=feedUrl.openConnection();
                urlc.setRequestProperty("User-Agent","");
                urlc.connect();
                Rss rss = parser.parse(urlc.getInputStream());
                return rss.getChannel().getItems();
        }
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        int links=0;
        try
        {
        for(Item item : feedGrabber.readRSSDocument("http://feeds.feedburner.com/Tutorialzine")){
                if(links++>3)
                        break;
                TextView t = (TextView)findViewById(R.id.title);
                t.append("Title: ");
                t.append(item.getTitle().toString());
                t.append("\n\n");

                //System.out.println("Title: " + item.getTitle());
                //System.out.println("Link: " + item.getLink());
        }
        }catch(Exception e)
        {
            //
        }
      }
}

如果我将“extends Activity”更改为“extends ListActivity”,则会给出异常。我需要进行此更改,因为我想在ListView而不是TextView上实现它。

抛出错误: 调试模式变为活动状态,并在Suspended(异常RunTimeException)下突出显示:ActivityThread.performLaunchActivity(ActivityThread $ ActivityRecord,Intent)行:2663。

2 个答案:

答案 0 :(得分:2)

当你扩展ListActivity时,它期望Layout有一个id为“@android:id / list”的ListView,如果你没有它,它会抛出异常

您的布局应如下所示:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
      android:orientation="vertical"
      android:layout_width="fill_parent"
      android:layout_height="fill_parent">
    <ListView android:id="@android:id/list"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"/>
    <TextView android:id="@android:id/empty"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/noresults"/>
</LinearLayout>

答案 1 :(得分:0)

如果没有看到您的main.xml或异常,我无法确定,但我建议您检查一下您的列表是否具有@android:id/list身份required