SimpleCursorAdapter を使用して displayname と value (両方とも DB 内) をリストし、リスト アクティビティに表示しました。
私が今やろうとしていたのは、リスト アクティビティの各アイテムに新しいビュー (ImageView) を追加することでした。最終的にはこんな感じになるはずです。
Image_1_NotInDB -- DisplayName1FromDB -- DisplayName1FromDB
Image_2_NotInDB -- DisplayName2FromDB -- DisplayName2FromDB.
画像は異なります (DisplayName1FromDB に基づく)。SimpleCursorAdapter は、この目的にはもう適していないと思います。
SimpleCursorAdapter を拡張する customSimpleCursorAdapter を作成しようとし、「newView」および「bindView」メソッドを使用して達成しようとしました。私はほとんどこれに従いました:Custom CursorAdapters。
問題は; 私が使用するイメージは、DB の値に基づいています (コンストラクターまたは customSimpleCursorAdapter に渡すつもりでした)。
public View newView(Context pContext, Cursor pCursor, ViewGroup pParent)
{
Cursor lCursor = getCursor();
final LayoutInflater inflater = LayoutInflater.from(pContext);
View lView = inflater.inflate(layout, pParent, false);
int lImage = "dog".equals(variable) ? R.drawable.dog : R.drawable.cat;
// "variable" is a member variable (set at the constructor)
ImageView lImageView = (ImageView) lView.findViewById(R.id.appImage);
if (lImageView != null)
{
lImageView.setImageResource(lImage);
}
return pParent;
}
public void bindView(View pView, Context pContext, Cursor pCursor)
{
int lImage = "dog".equals(variable) ? R.drawable.dog : R.drawable.cat;
// "variable" is a member variable (set at the constructor)
ImageView lImageView = (ImageView) lView.findViewById(R.id.appImage);
if (lImageView != null)
{
lImageView.setImageResource(lImage);
}
}
これが「customSimpleCursorAdapter」を使ってみた方法です
String[] lDisplay = new String[] {KEY_NAME, KEY_TIME};
int[] lValues = new int[] {R.id.name, R.id.time};
CustomRowCursorAdapter lCursorAdapter = new CustomRowCursorAdapter(this, R.layout.row, lSTime, lDisplay, lValues, "MY IDEA WAS TO PASS THE ANIMAL NAME HERE, BUT NOT LUCK as I am not sure How ");
lCursorAdapter.newView(this, lSTime, getListView());
lCursorAdapter.bindView(getListView(), this, lSTime);
setListAdapter(lCursorAdapter);
ArrayAdapter は答えですか? はいの場合、どのパラメータを渡すか教えていただけますか?