我正在尝试在ListView中添加一些项目。当我打开Layout(startActivity)时,我调用了类Listing。
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_listing);
ListView lv = (ListView) findViewById(R.id.listViewLIST);
String[] items = {"Item1", "Item2", "Item3", "Item4"};
ArrayList<String> arrayList = new ArrayList<>(Arrays.asList(items));
ArrayAdapter<String> adapter = new ArrayAdapter<>(this, R.layout.activity_listing, R.id.listViewLIST, arrayList);
lv.setAdapter(adapter);
}
我在每一步都阅读了一些教程,但应用程序始终在最后一行代码中停止工作
lv.setAdapter(adapter);
我错过了什么?
编辑27.12.2015 activity_listing.xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" android:layout_height="match_parent" android:fitsSystemWindows="true"
tools:context="cigarkings.cigarking.Listing">
<ListView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/listViewLIST"
android:layout_alignParentTop="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:layout_marginTop="51dp" />
<SearchView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/searchView"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignRight="@+id/listView"
android:layout_alignEnd="@+id/listView" />
<include layout="@layout/content_listing" />
</android.support.design.widget.CoordinatorLayout>
答案 0 :(得分:0)
假设您的协调器布局缺少声明android:layout_width="match_parent"
作为印刷错误,主要错误在于设置阵列适配器。
在语句中:ArrayAdapter<String> adapter = new ArrayAdapter<>(this, R.layout.activity_listing, R.id.listViewLIST, arrayList);
构造函数参数(第二个参数:R.layout.activity_listing
和第三个参数:R.id.listViewLIST
)不正确.Array Adapter将textview的资源ID作为第三个参数而不是列表视图,包含textview的布局的布局资源id作为第二个参数传递。
因此,一个解决方案是创建一个单独的xml布局,其中包含textview并将布局资源id作为第二个参数传递,textview id作为第三个参数传递给Array Adapter的构造函数
答案 1 :(得分:0)
首先,活动列表不应该采用这种模式
如果你处于起步阶段,那么先试试这个Tutorial ......
对初学者来说是最好的解释
然后,您必须使用BaseAdaptor类和自定义XML实现自定义listView。