【问题标题】:Displaying gridview fragment next to mapview fragment, loading images from SD card在 mapview 片段旁边显示 gridview 片段,从 SD 卡加载图像
【发布时间】:2012-01-18 23:27:51
【问题描述】:

我目前正在开发一个 Android 应用程序。我希望在屏幕左侧有一个 GridView,在屏幕右侧有一个 MapView(假设布局是横向的)。 GridView 将包含当前在 SD 卡上的照片,选中后将提取 exif 标签,如果有 GPS 信息,则将其定位在 Map View 上。

我目前正在使用 inazaruk 的Map Fragment Example 来显示地图片段。

我正在扩展 Fragment 并在我的网格片段类中实现 LoaderManager.Callbacks。但是,“getLoaderManager().initLoader”方法显示错误——说 PhotoGridFragment 类不适用。

PhotoGridFragment 的当前代码是:

public class PhotoGridFragment extends Fragment implements LoaderManager.LoaderCallbacks<Cursor> {

// member variables for
private static final int PHOTO_LIST_LOADER = 0x01;
private SimpleCursorAdapter adapter;
private CursorLoader cursorLoader;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    getLoaderManager().initLoader(PHOTO_LIST_LOADER, null, this);
    adapter = new SimpleCursorAdapter(
            getActivity().getApplicationContext(), R.layout.grid_item,
            null, new String[] { MediaStore.Images.Thumbnails.IMAGE_ID }, null,
            CursorAdapter.FLAG_REGISTER_CONTENT_OBSERVER);
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
    return inflater.inflate(R.layout.grid_item, container, false);      
}



// Loader manager methods
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
    String[] projection = { MediaStore.Images.Thumbnails._ID };
    CursorLoader cursorLoader = new CursorLoader(getActivity(),
            MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI, projection,
            null, null, null);
    return cursorLoader;
}

public void onLoadFinished(Loader<Cursor> loader, Cursor cursor) {
    adapter.swapCursor(cursor);
}

public void onLoaderReset(Loader<Cursor> cursor) {
    adapter.swapCursor(null);
}

我显然在片段初始化的某个地方出错了,但我不完全确定在哪里。如果需要,可以编辑为应用程序的其余部分提供代码。

基本上我想知道:为什么这段代码不起作用?我从 SD 卡中检索图像的方法是否正确?还是这样也错了?

【问题讨论】:

    标签: java android android-listview android-fragments android-cursor


    【解决方案1】:

    这已经解决了。我使用的是兼容性片段类(例如,android.support.v4.app.Fragment)。 “initLoader”方法不将兼容性片段作为参数。改成android.app.Fragment后,这个问题就解决了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多