2013-05-17 54 views
0

我的列表視圖顯示這樣的錯誤我在我的問題中提到的事件,儘管我在mainactivity中提到擴展listactivity也和我的佈局我把儘可能的ListViewLogcat錯誤 - 內容必須有一個ListView的id屬性是'android.R.id.list'

activity_list_item.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context=".MainActivity" > 

    <ListView 
     android:id="@android:id/list" 
     android:layout_width="wrap_content" 
     android:layout_height="fill_parent" > 
    </ListView> 

</LinearLayout> 

Mainactivity.java

public class MainActivity extends ListActivity implements FetchDataListener{ 
    private ProgressDialog dialog; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState);   
     setContentView(R.layout.activity_list_item); 
     initView(); 
    } 

    private void initView() { 
     // show progress dialog 
     dialog = ProgressDialog.show(this, "", "Loading..."); 

     String url = "http://10.0.2.2/test/apps.php"; 
     FetchDataTask task = new FetchDataTask(this); 
     task.execute(url); 
    } 

    @Override 
    public void onFetchComplete(List<Application> data) { 
     // dismiss the progress dialog 
     if(dialog != null) dialog.dismiss(); 
     // create new adapter 
     ApplicationAdapter adapter = new ApplicationAdapter(this, data); 
     // set the adapter to list 
     setListAdapter(adapter);   
    } 

    @Override 
    public void onFetchFailure(String msg) { 
     // dismiss the progress dialog 
     if(dialog != null) dialog.dismiss(); 
     // show failure message 
     Toast.makeText(this, msg, Toast.LENGTH_LONG).show();   
    } 
} 

我的日誌貓錯誤顯示這樣

5-17 11:30:30.649: E/AndroidRuntime(1177): FATAL EXCEPTION: main 
05-17 11:30:30.649: E/AndroidRuntime(1177): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.jsonandroid/com.example.jsonandroid.MainActivity}: java.lang.RuntimeException: Your content must have a ListView whose id attribute is 'android.R.id.list' 
05-17 11:30:30.649: E/AndroidRuntime(1177):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180) 
05-17 11:30:30.649: E/AndroidRuntime(1177):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230) 
05-17 11:30:30.649: E/AndroidRuntime(1177):  at android.app.ActivityThread.access$600(ActivityThread.java:141) 
05-17 11:30:30.649: E/AndroidRuntime(1177):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234) 
05-17 11:30:30.649: E/AndroidRuntime(1177):  at android.os.Handler.dispatchMessage(Handler.java:99) 
05-17 11:30:30.649: E/AndroidRuntime(1177):  at android.os.Looper.loop(Looper.java:137) 
05-17 11:30:30.649: E/AndroidRuntime(1177):  at android.app.ActivityThread.main(ActivityThread.java:5039) 
05-17 11:30:30.649: E/AndroidRuntime(1177):  at java.lang.reflect.Method.invokeNative(Native Method) 
05-17 11:30:30.649: E/AndroidRuntime(1177):  at java.lang.reflect.Method.invoke(Method.java:511) 
05-17 11:30:30.649: E/AndroidRuntime(1177):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 
05-17 11:30:30.649: E/AndroidRuntime(1177):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 
05-17 11:30:30.649: E/AndroidRuntime(1177):  at dalvik.system.NativeStart.main(Native Method) 
05-17 11:30:30.649: E/AndroidRuntime(1177): Caused by: java.lang.RuntimeException: Your content must have a ListView whose id attribute is 'android.R.id.list' 
05-17 11:30:30.649: E/AndroidRuntime(1177):  at android.app.ListActivity.onContentChanged(ListActivity.java:243) 
05-17 11:30:30.649: E/AndroidRuntime(1177):  at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:273) 
05-17 11:30:30.649: E/AndroidRuntime(1177):  at android.app.Activity.setContentView(Activity.java:1881) 
05-17 11:30:30.649: E/AndroidRuntime(1177):  at com.example.jsonandroid.MainActivity.onCreate(MainActivity.java:17) 
05-17 11:30:30.649: E/AndroidRuntime(1177):  at android.app.Activity.performCreate(Activity.java:5104) 
05-17 11:30:30.649: E/AndroidRuntime(1177):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080) 
05-17 11:30:30.649: E/AndroidRuntime(1177):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144) 
05-17 11:30:30.649: E/AndroidRuntime(1177):  ... 11 more 
+0

清理完項目後再試。 –

+0

關閉袖口,你看起來沒問題。請記住,如果您的活動佈局只是一個全屏「ListView」,您可以跳過活動佈局和'setContentView()'調用。 'ListActivity'默認會自動給你一個全屏的'ListView'。 – CommonsWare

+0

嘗試android:layout_height =「match_parent」 –

回答

0

你只需要改變的id,你在activity_list_item.xml列表視圖@android:ID/list如果使用ListActivity你的ListView ID必須像mentionned

+3

嗯......我認爲這就是OP已經爲'android:在'ListView'上的id。 – CommonsWare

+0

在這個鏈接拿一個lov http://www.mokasocial.com/2010/08/listactivity-and-missing-android-r-id-list/ –

+0

雅我把列表活動,我提到我的列表視圖也像那樣android:id =「@ android:id/list」 –

0

佈局更改爲,

<?xml version="1.0" encoding="utf-8"?> 
<ListView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@android:id/list" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    /> 
+0

我無法在列表中使用您的代碼,它顯示錯誤 –

+0

XML文件:中止構建。它顯示像那樣 –

+0

@Basim Sherif:不。爲什麼你認爲這會更好,順便說一句? – njzk2

0

刪除呼叫setContentView

ListActivity不需要通過setContentView()方法爲其分配佈局,如果您只想顯示ListView ListActivity,則默認情況下包含ListView。

如果您需要在ListActivity中包含比ListView更多的視圖,您仍然可以爲您的活動分配佈局。在這種情況下,您的佈局必須包含一個列表視圖,並將android:id屬性設置爲@android:id/list

+0

我刪除了行,並在我運行它,但它顯示無效的響應http://www.semurjengkol.com/populating-android-listview-with-json-based-data-fetched-from-mysql-server-using- PHP /這是我試過的鏈接 –

+0

是什麼意思**無效的響應**?你的原始問題解決了嗎? –

+0

我註釋掉setcontentview行,然後我運行我的程序,在它的加載模擬器,然後在屏幕上顯示無效的響應,你可以檢查鏈接http://www.semurjengkol。使用MySQL的服務器使用PHP//,這個鏈接我正在關注的是,現在我正在嘗試執行鏈接步驟 –

相關問題