簡體   English   中英

Android - 列表活動到活動

[英]Android - ListActivity to Activity

我有這個代碼;

private void displayResultList() {
    TextView tView = new TextView(this);
    getListView().addHeaderView(tView);

    setListAdapter(new ArrayAdapter<String>(this,
            android.R.layout.simple_list_item_1, results));
    getListView().setTextFilterEnabled(true);

}

用於我需要的

public class MainActivity extends ListActivity {

但是當我使用它的時候

setContentView(R.layout.main);

我得到錯誤(第25行是“setContentView(R.layout.main);)

02-26 04:47:22.770: E/AndroidRuntime(1031): FATAL EXCEPTION: main
02-26 04:47:22.770: E/AndroidRuntime(1031): Process: com.example.app.arr, PID: 1031
02-26 04:47:22.770: E/AndroidRuntime(1031): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.app.arr/com.example.app.arr.MainActivity}: java.lang.RuntimeException: Your content must have a ListView whose id attribute is 'android.R.id.list'
02-26 04:47:22.770: E/AndroidRuntime(1031):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195)
02-26 04:47:22.770: E/AndroidRuntime(1031):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
02-26 04:47:22.770: E/AndroidRuntime(1031):     at android.app.ActivityThread.access$800(ActivityThread.java:135)
02-26 04:47:22.770: E/AndroidRuntime(1031):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
02-26 04:47:22.770: E/AndroidRuntime(1031):     at android.os.Handler.dispatchMessage(Handler.java:102)
02-26 04:47:22.770: E/AndroidRuntime(1031):     at android.os.Looper.loop(Looper.java:136)
02-26 04:47:22.770: E/AndroidRuntime(1031):     at android.app.ActivityThread.main(ActivityThread.java:5017)
02-26 04:47:22.770: E/AndroidRuntime(1031):     at java.lang.reflect.Method.invokeNative(Native Method)
02-26 04:47:22.770: E/AndroidRuntime(1031):     at java.lang.reflect.Method.invoke(Method.java:515)
02-26 04:47:22.770: E/AndroidRuntime(1031):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
02-26 04:47:22.770: E/AndroidRuntime(1031):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
02-26 04:47:22.770: E/AndroidRuntime(1031):     at dalvik.system.NativeStart.main(Native Method)
02-26 04:47:22.770: E/AndroidRuntime(1031): Caused by: java.lang.RuntimeException: Your content must have a ListView whose id attribute is 'android.R.id.list'
02-26 04:47:22.770: E/AndroidRuntime(1031):     at android.app.ListActivity.onContentChanged(ListActivity.java:243)
02-26 04:47:22.770: E/AndroidRuntime(1031):     at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:293)
02-26 04:47:22.770: E/AndroidRuntime(1031):     at android.app.Activity.setContentView(Activity.java:1929)
02-26 04:47:22.770: E/AndroidRuntime(1031):     at com.example.app.arr.MainActivity.onCreate(MainActivity.java:25)
02-26 04:47:22.770: E/AndroidRuntime(1031):     at android.app.Activity.performCreate(Activity.java:5231)
02-26 04:47:22.770: E/AndroidRuntime(1031):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
02-26 04:47:22.770: E/AndroidRuntime(1031):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)
02-26 04:47:22.770: E/AndroidRuntime(1031):     ... 11 more

我的問題是,當我使用“extends Activity”時,我可以做一些像“displayResultList”這樣的事情

在布局中引用ListView

Listview mListView = (ListView) findViewById(R.id.myListView);

然后稱之為

mListView.setAdapter(mAdapter);

問題在以下行中描述。

Your content must have a ListView whose id attribute is 'android.R.id.list'

由於您使用的是ListActivity ListView視圖必須在名稱“android.R.id.list”中具有id。 否則代碼就好了。

因此,您需要對xml文件進行相應的更改。

編輯

您可以將以下代碼放在ListView

編輯二

android:id="@android:id/list" 

嘗試在setContentView()之后調用以下內容

ListView listview = getListView();

如果您正在使用ListActivity,那么在您的xml文件中只需為ListView id更改此項

 android:id="@android:id/list" 

並在你的Activity中調用它

ListView lv = getListView();

如果你正在使用Activity,那么只需在你的java文件中找到你的ListView的id

Listview mListView = (ListView) findViewById(R.id.myListView);

並為此設置適配器

mListView.setAdapter(mAdapter);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM