如何使用Activity的其余部分实现ListView

时间:2012-01-14 09:00:03

标签: android android-layout android-listview

我正在尝试将ListView包含到我的主Activity中。我主要活动的java代码如下:     公共类StylbugActivity扩展Activity {     /** 在第一次创建活动时调用。 * /

private ListView x;
public void onCreate(Bundle savedinstanceState) {
    super.onCreate(savedinstanceState);
    String[] values = new String[] { "Android", "iPhone", "WindowsMobile",
            "Blackberry", "WebOS", "Ubuntu", "Windows7", "Max OS X",
            "Linux", "OS/2" };
    x = (ListView) findViewById(R.id.list_list_view);
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
            android.R.layout.simple_list_item_1, values);
    x.setAdapter(adapter);
}

而我的main.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"
android:orientation="vertical" >

<TextView
    android:id="@+id/wow"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:clickable="true"
    android:onClick="what"
    android:text="@string/hello" />

<Button
    android:id="@+id/testButton"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:onClick="test1"
    android:text="Button" />

<ListView
    android:id="@+id/list_list_view"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" />



</LinearLayout>

然而,当我测试我的程序时,它只是在我尝试启动时打破了我。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

如果扩展ListActivity而不是Activity,它将正常工作。因为您使用的是setContentView(R.layout.main),所以ListView x永远不会被初始化。我不确切地知道你要完成什么,但这将使你的ListView工作。

public class ListExample extends ListActivity{
public void onCreate(Bundle savedinstanceState) {
    super.onCreate(savedinstanceState);
    String[] values = new String[] { "Android", "iPhone", "WindowsMobile",
            "Blackberry", "WebOS", "Ubuntu", "Windows7", "Max OS X",
            "Linux", "OS/2" };
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
            android.R.layout.simple_list_item_1, values);
    setListAdapter(adapter);
}
}

您必须做一些其他工作才能使xml中的T​​extView和Button在此设置中起作用。

您也可以使用您正在使用的路线,但您必须设置内容视图(R.layout.main),否则您将继续获得NPE。