使用CursorLoader设置ImageView的资源

时间:2015-02-20 04:06:32

标签: android android-sqlite simplecursoradapter

很抱歉这样一个开放式的问题,但我是Android的新手,我真的好好寻找答案,找不到任何东西。我想存储一些引用SQLite表中图像的信息,然后使用SimpleCursorAdapter将该数据移动到ImageView。我认为,如果我存储一个整数(资源ID),然后将适配器设置为正确的视图,视图的资源将更新为该ID,但这不起作用。还有其他方法可以做我想做的事吗?

提前致谢:)

编辑1: 这就是我现在正在做的事情。我将drawable的ID存储在表中,然后将SimpleCursorAdapter设置为View,其资源我想成为drawable。这是我用来存储信息的代码:

ContentValues values = new ContentValues();
values.put(SubwayContract.ROUTE_IMG, R.drawable.red_circle);
values.put(SubwayContract.ROUTE, "R");
values.put(SubwayContract.FINAL_STATION, "Howard-Bound");
values.put(SubwayContract.ARRIVAL_TIME, "5:24:00");
final Uri uri = mContentResolver.insert(SubwayContract.CONTENT_URI, values);

第二行存储图像ID。这是我设置适配器的代码:

private final int URL_LOADER = 0;
private String[] mProjections = {SubwayContract._ID, SubwayContract.ROUTE_IMG, SubwayContract.ROUTE, SubwayContract.FINAL_STATION, SubwayContract.ARRIVAL_TIME};
private int[] mTo = {R.id._id, R.id.arrival_icon, R.id.arrival_letter, R.id.arrival_dest, R.id.arrival_time};
private SimpleCursorAdapter mAdaptor = null;
...
getLoaderManager().initLoader(URL_LOADER, null, ArrivalsFragment.this);

    ListView mListView = (ListView) rootView.findViewById(R.id.arrivals_list_view);
    mAdaptor = new SimpleCursorAdapter(
            rootView.getContext(),
            R.layout.arrivals_list_item,
            null,
            mProjections,
            mTo,
            0
    );
    mListView.setAdapter(mAdaptor);

View的ID是R.id.arrival_icon,它是一个View。我知道游标或加载器没有错误,因为如果我取出视图和ID,一切正常。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

您可以将图像的资源ID(位于drawable文件夹中)保存到数据库中。 你可以尝试如下:

int resID = mContext.getResources().getIdentifier(image_name, "drawable", mContext.getPackageName());