我试图在每个列表项中显示一个带有图像,大文本和小文本的简单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"/>
任何帮助将不胜感激!谢谢
答案 0 :(得分:0)
我认为菜单布局文件中存在问题
机器人:文本=&#34; @ + ID /值&#34;
尝试编写一些文本或指定链接到字符串资源,如
android:text="@string/my_button_text"
当你调用setListAdpate两次时,你用新的ovirwrite第一个适配器。看看这里的例子 ListActivity