gpt4 book ai didi

android - 错误 : ArrayAdapter requires the resource ID to be a TextView

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:53:59 26 4
gpt4 key购买 nike

这是什么意思?我一直在与这个使用 ArrayAdapterListView 作斗争。我写了这个很好的对话框 fragment ,我已经回调到 updateUI listner 因为我想更新这个 ListView 我在我的 fragment 中来自 DialogFragment 首先是 ArrayAdapter 是我创建的类的复杂类型:

ArrayAdapter<Location> theLocations;
...
//in oncreateview
theLocations = new ArrayAdapter<Location>(mContext, R.layout.location_row, locations);
//here locations is an ArrayList<Location>

然后我有:

public void onUIUpdate(Location l) { //called from dialog fragment      
locations.add(l);
theLocations.notifyDataSetChanged();
}

然后出现上述错误,所以我将其切换为仅使用

String[] locationNames = new String[sizeofLocations];
theLocations=new ArrayAdapter<String>(mContext, R.layout.location_Row, locationNames );

public void onUIUpdate(Location l) {
locations.add(l);
locationNames = new String[locations.size()];
for(locations.size() etc...) {
locationNames [i] = new String(locations.get(i).getName());
}
theLocations.notifyDataSetChanged();
}

这在我的更新方法(更新 ui)中没有出错,但它没有更新任何东西。所以我不知道如何更新这个 ArrayAdapter,我认为 notifyChange 应该这样做,但它要么什么都不做,要么抛出上述错误。

我的 SimpleCursorAdapters 在我程序的其他地方没有问题(只要我的游标保持打开状态并且我对它们调用重新查询)。

对我做错了什么有任何见解吗?

根据要求,这里是我的 R.layout.location_row 布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="wrap_content" android:layout_width="fill_parent" android:orientation="horizontal">
<TextView android:text="@+id/TextView01" android:layout_height="wrap_content" android:id="@+id/location_name"
android:textSize="15px" android:layout_marginTop="10px" android:layout_width="wrap_content"></TextView>
<TextView android:text="|" android:layout_height="wrap_content"
android:textSize="15px" android:layout_marginTop="6px" android:layout_width="wrap_content"></TextView>
<TextView android:text="@+id/TextView01" android:layout_height="wrap_content" android:id="@+id/location_lat"
android:textSize="15px" android:layout_marginTop="6px" android:layout_width="wrap_content"></TextView>
<TextView android:text="|$" android:layout_height="wrap_content"
android:textSize="15px" android:layout_marginTop="6px" android:layout_width="wrap_content"></TextView>
<TextView android:text="@+id/TextView01" android:layout_height="wrap_content" android:id="@+id/location_lon"
android:textSize="15px" android:layout_marginTop="6px" android:layout_width="wrap_content"></TextView>
</LinearLayout>

最佳答案

我们可以在 http://developer.android.com/reference/android/widget/ArrayAdapter.html 中读到ArrayAdapter 仅适用于 TextView 上的字符串。你可以使用这个构造函数

ArrayAdapter(Context context, int resource, int textViewResourceId, List<T> objects)

在布局中指定 TextView 的 id 或覆盖

getView(int, View, ViewGroup) 

返回自定义类型的 View 。

关于android - 错误 : ArrayAdapter requires the resource ID to be a TextView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6822632/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com