私はテキストボックスと画像でカスタムリストを作成しました。イメージは、データベースsqliteの行を削除する必要があります。私のフラグメント活性のカーソルのリスト内の項目を削除する
私はsqlitedatabaseのクエリメソッドを使用しています。
cursor = mSqLiteDatabase.rawQuery("SELECT liked_id as _id, liked_presentation_id FROM liked", null);
LikedListCursorAdapter likedListCursorAdapter = new LikedListCursorAdapter(getActivity(), cursor);
lvItems.setAdapter(likedListCursorAdapter);
/////////////私cursoradapter
public class LikedListCursorAdapter extends CursorAdapter {
SQLiteDatabase mSqLiteDatabase;
int idSpeaker,idPresentation;
TextView textViewName, textViewCompany, textViewTitle, textViewDate, textViewAboutReport;
LinearLayout linearLayout;
public static ImageView imageViewStatus;
private DatabaseHelper mDatabaseHelper;
public LikedListCursorAdapter(Context context, Cursor cursor) {
super(context, cursor);
}
@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
return LayoutInflater.from(context).inflate(R.layout.liked_list, parent, false);
}
@Override
public void bindView(View view, final Context context, final Cursor cursor) {
imageViewStatus = (ImageView) view.findViewById(R.id.imageViewStatus);
textViewTitle = (TextView) view.findViewById(R.id.textViewTitle);
textViewDate = (TextView) view.findViewById(R.id.textViewTime);
idSpeaker = cursor.getInt(cursor.getColumnIndex("_id"));
///////////////delete item
imageViewStatus.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Log.w("id",String.valueOf(idSpeaker));
mDatabaseHelper = new DatabaseHelper(context);
mSqLiteDatabase = mDatabaseHelper.getWritableDatabase();
mSqLiteDatabase.delete(mDatabaseHelper.TABLE_LIKED,
"liked_id = ?",
new String[] {String.valueOf(idSpeaker)});
cursor.requery();
notifyDataSetChanged();
}
});
しかし、常にリストビューの最後の行を削除します。 (カーソルの位置が最後です)。
私は私がクリックしたときに、リストビューから現在位置を取得する方法がわかりません。 、あなたは常にあなたのデータの最後のIDを与え、あなたのbindView、であなたのidSpeaker
を初期化している私に
それは働いていません。 cursor.getposition()=最後のインデックスは、リストビュー に私の知る限り理解し、私は、リストビューにインデックス行を見つけて、cursor.movetoposition(インデックス)に移す必要があります。 はその後idSpeaker前にこの cursor.moveToPosition(位置)を追加 –
動作します –