Listview的项目在android中不会显示为真实列表

时间:2014-06-23 07:38:30

标签: java android listview

我有一个简单的课程MainActivity,其扩展为ListActivity,在其中我使用ArrayList创建了ArrayAdapter

然后在xml文件中我为我的应用程序添加了一个背景。当我运行应用程序时,MainActivity中定义的项目不会显示为单个项目列表。实际上它们出现在单独的页面中。我的意思是每个项目都在新页面中定义。这只是因为我添加了背景而引起的。

MainActivity上课:

public class MainActivity extends ListActivity {
    public void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);

         ArrayList<String> raid_list = new ArrayList<String>();
         raid_list.add("Android");
         raid_list.add("iPhone");

         ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.activity_main, R.id.label, raid_list);
         setListAdapter(adapter);
}

xml文件如下:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/mybackground" >

    <TextView
    android:id="@+id/label"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:gravity="center"
    android:text="@+id/label_text"
    android:textSize="20sp" />

</RelativeLayout>

我该如何解决这种不端行为?感谢。

2 个答案:

答案 0 :(得分:0)

如果您想将ListActivity与自定义布局文件一起使用,那么您需要使用android:id =&#34; @android:id / list&#34;

将ListView添加到此布局中

答案 1 :(得分:0)

一些重要的错误:

首先:您需要创建一个布局来定义如何查看此屏幕。这样的事情(它将被称为&#34; activity_list_view_android_example.xml&#34;):

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

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

 </LinearLayout> 

注意: 当使用ListActivity创建Listview时,两件事必须包含一个ListView,其中android:id属性设置为@android:id / list(NOT android:id =&#34; @ + id / list&#34;)。 如果您将定义ListView并将android:id属性设置为@ + id / list,那么它将给出错误。

在你需要像屏幕布局一样膨胀这个xml文件之后:

  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_list_view_android_example);

第二个错误:在为列表的每一行定义的xml中(在代码中称为activity_main.xml),您必须定义行,而不是完整列表活动的外观。所以,你不能让每一行都有屏幕的最大高度,对吧?请修理一下:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:orientation="vertical"
 android:layout_width="fill_parent"
 android:layout_height="40dp"
 android:background="@drawable/mybackground" >