ListView使用数组适配器和自定义xml文件

时间:2015-08-27 19:09:45

标签: android xml listview

我试图在每个列表项中显示一个带有图像,大文本和小文本的简单listView。我编写了以下代码,但是当我运行应用程序时,它会产生NullPointerException。对于我使用的方法,我不需要findviewbyid所以我不确定我在做什么来给出这个错误。有人知道吗?

这是我的MenuPage.java文件

import android.app.Activity;
import android.app.ListActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;

public class MenuPage extends ListActivity {


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);


    String[]values=new String[]{"Coffee","Steak","Ice Cream"};
    String[]prices=new String[]{"$4.99","$21.99","$12.99"};
    setListAdapter(new ArrayAdapter<String>(this,R.layout.activity_main,R.id.values, values));
    setListAdapter(new ArrayAdapter<String>(this,R.layout.activity_main,R.id.prices, prices));


}

}

这是我上面的java文件的menu.xml:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="match_parent">
<ImageView
    android:id="@+id/ic_launcher_movies"
    android:layout_width="50px"
    android:layout_height="50px"
    android:layout_marginLeft="4dp"
    android:layout_marginRight="10px"
    android:layout_marginTop="2dp"
    android:src="@drawable/items"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true">
</ImageView>
<TextView
    android:id="@+id/values"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@+id/values"
    android:textSize="25sp"
    android:layout_alignParentLeft="true"
    android:layout_marginLeft="64dp"
    android:layout_alignParentTop="true"
    android:layout_marginTop="0dp"
    android:minHeight="120dp">
</TextView>
<TextView
    android:id="@+id/prices"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@+id/prices"
    android:textSize="10sp"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:layout_marginTop="120dp"
    android:layout_marginLeft="65dp">
</TextView>

另外,我创建了一个带有drawables的xml,用于我想要使用的图像;

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
    android:duration="30"
    android:drawable="@drawable/coffee"/>
<item
    android:duration="30"
    android:drawable="@drawable/steak"/>
<item
    android:duration="30"
    android:drawable="@drawable/icecream"/>

我的logcat给出了这个错误 enter image description here

任何帮助将不胜感激!谢谢

1 个答案:

答案 0 :(得分:0)

我认为菜单布局文件中存在问题

  

机器人:文本=&#34; @ + ID /值&#34;

尝试编写一些文本或指定链接到字符串资源,如

android:text="@string/my_button_text"

当你调用setListAdpate两次时,你用新的ovirwrite第一个适配器。看看这里的例子 ListActivity