わかりました。SD カードから画像を取得してアクティビティに表示しようとしていますListView
。
たくさんのヒントを読んでいますが、重要なチャンクがありません。これを説明する短いソースコードを見てみたいのですが、まだ何も見つかりません。
私の調査によると、が実行さbindview()
れたときに呼び出されるように聞こえます。listview.setadapter(SimpleCursorAdapter adapter)
ドキュメントには、が を処理できない場合にsetImageView
呼び出されると記載されています。bindview
ViewBinder
ImageView
FROM
配列内のフィールド、配列内のid
、およびビュー グループを で指定します。次に、アダプターをに設定すると出来上がりです。TextView
TO
Cursor
TextView
ListView
呼び出しシーケンスは次のとおりだと思います。
listView.setAdapter(SimpleCursorAdapter adapter)->adapter.bindView()->adapter.setTextView
Bindview は、ビューがTextView, determine that it can bind it, passes the
TextView型であるかどうかを判断する必要がありますand text value from the cursor and
setTextView` がその役割を果たします。
ImageView
それで、それは非常によく似たものを求めますよね?
listViw.setAdapter(SimpleCursorAdapter adapter)->adapter.bindView()->adapter.setImageView
bindView
では、 type のオブジェクトに出くわしたときImageView
、それは何をするのでしょうか? のようなデフォルトの実装はありますsetTextView
か? それを行うのは難しいと思いますが、イメージは非常に異なります。テキストはテキストですが、画像にはフォーマット、サイズ、深度、スケール、LOCATIONS などがあります。IS に渡される文字列がsetTextView
テキスト、ペイロードです。画像では、文字列は(おそらく)ファイル名であり、画像の開始点にすぎません。
にファイル名を保持するデータベース列名を使用してアダプターを構築する必要があると思いますFROM
。配列には、私のレイアウトのTO
id だけが含まれます。デフォルトのviewbinder bindview()ImageView
を使用できると思いますが、予想される文字列(ファイル名)を取得するためにオーバーライドし、予想されるアプリケーションパスでその画像名を見つけるために画像読み込み行を構築する必要があります。setImageView()
したがって、次のようになります(おそらく):
listView.setAdapter(MyOwnSimpleCursorAdapter myOwnAdapter)->myOwnAdapter.super.bindView()->myOwnAdapter.setImageView()
これは正しいと思いますか?不足しているギャップを埋めたり、機能するソース コードを提供したりできる人がいれば、大いに役立ちます。ところで、これを行うコードを書きましたが、機能しません。これは非常に単純なバグである可能性があり、実行可能な場合はこのスレッドを停止したくありません。正しい方向に少しだけ微調整する必要があると思います。