2010-07-02 40 views
3

在我的項目中,每當我擴展活動時,它都能正常工作,但只要我擴展ListActivity,它就會拋出異常並顯示未找到的文件。這是爲什麼?我們已經知道ListActivity本身擴展了Activity類。該應用程序必須正常運行。有關擴展ListActivity的問題

這裏的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) 
     { 
      // 
     } 
     } 
} 

如果我改變「延伸活動」到「擴展ListActivity」它給人的例外。我需要帶來這個改變,因爲我想在ListView而不是TextView上實現它。

錯誤,它拋出: 調試模式變得活躍,這下懸(例外的RuntimeException)強調:2663

+0

也許發佈你的代碼/佈局文件,看看你在做什麼?我無時無刻都在擴展列表活動 – 2010-07-02 11:17:48

+0

...並添加了什麼異常(FileNotFoundException)?你看到哪個文件?你有一個logcat提取? – 2010-07-02 11:24:14

+0

我已經添加了我的代碼..試圖抓取特定網站的提要並顯示它。 – Vaibhav 2010-07-02 11:24:54

回答

2

當你擴展一個ListActivity,它期待:ActivityThread.performLaunchActivity(ActivityThread $ ActivityRecord,意圖)線佈局有一個具有一個ID一個ListView「@android:ID /列表」,如果你沒有它,它會拋出一個異常

您的佈局應是這個樣子:

<?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> 
+0

啊,非常感謝..! – Vaibhav 2010-07-02 11:44:12

0

沒有看到您的main.xml或異常我不能確定,但​​我會建議檢查您的列表是否具有@android:id/list標識爲required