質問

現在、Androidアプリケーションに取り組んでいます。画面の左側にグリッドビューと、画面の右側にMapViewがありたいと思います(レイアウトが風景であると仮定)。 GridViewには現在SDカードの写真が含まれ、選択された場合、EXIFタグが抽出され、GPS情報がある場合、マップビューでターゲットになります。

現在、Inazarukを使用しています マップフラグメントの例 マップフラグメントを表示します。

フラグメントを拡張し、Grid Fragmentクラス内にLoaderManager.callbackを実装しています。ただし、「getloadermanager()。initolader」メソッドはエラーを表示します - フォトグリッドフラグメントクラスが適用されないと言っています。

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カードから画像を取得する私の方法は正しいですか?それとも間違っていますか?

正しい解決策はありません

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top