2

我是 Android 编程的初学者,我想知道您是否可以帮助我。

我有一个 ListFragment:

public class AdvertFrag extends ListFragment implements LoaderManager.LoaderCallbacks<Cursor>

我正在使用 loaderManager 从数据库中填充。这可以正常工作并显示广告的详细信息,但我想做一些计算(通过经度和纬度计算距离),然后在每个 AdvertFrag 上显示到商店位置的距离。

我已经研究过在片段中的 TextView 上使用 setText() 并阅读过您应该允许首先调用 onCreateView 方法,以便存在视图。我试过下面的代码:

public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
        view = inflater.inflate(R.layout.row, container, false);
        if(view == null)
        {
            Log.i("TEST","null");
        }
        else
        {
            distance = (TextView) view.findViewById(R.id.distance);
            distance.setText("the distance will go here");
        }
        return view;
    }

但是收到错误消息“您的内容必须有一个 id 属性为 android.R.id.list 的 ListView。允许 OnCreateView 只调用:

return super.onCreateView(inflater, container, savedInstanceState);

工作正常。

所以我的问题是,我做错了什么?以及如何让 setText 在 ListActivity 中工作?还是我以完全错误的方式去做?

如果有用,请添加信息:

我的 row.xml,只有加载器填充的文本视图和距离的附加文本视图。

我有一个在其 XML 中有片段的 fragmentActivity,如下所示:

<fragment 
        ...
        android:name="com.example.goclub.AdvertFrag"
        .../>
4

1 回答 1

0

就像 user113215 所说onCreateView()的那样,ListFragment不是更改列表项内小部件的地方。CursorAdapter假设您正在使用一个,您将不得不为此创建一个自定义。你可以在这里找到一个很好的教程。基本上它扩展了 aSimpleCursorAdapter并对bindView方法进行了更改。

于 2012-12-01T21:17:33.513 回答