-2

私のコードでは、選択した項目をリスト ビューとデータベースから削除したいと考えています。コンテキストメニューを使用しています。ポジションリストを取得しています。

コード:

public boolean onContextItemSelected(MenuItem item) {
    // TODO Auto-generated method stub
    AdapterContextMenuInfo menuInfo = (AdapterContextMenuInfo) item
            .getMenuInfo();
    // Track track = (Track)mAdapter.getItem(info.position);
    switch (item.getItemId()) {
    case R.id.delete:
        Toast.makeText(getApplicationContext(),
                "Deleted" + menuInfo.position, Toast.LENGTH_LONG).show();
        // delete(menuInfo.id);

        return true;
    case R.id.add:
        Toast.makeText(getApplicationContext(), "Add Successfully",
                Toast.LENGTH_LONG).show();
        return true;
    case R.id.view:
        Toast.makeText(getApplicationContext(), "Viewed", Toast.LENGTH_LONG)
                .show();

    default:
        Toast.makeText(getApplicationContext(), "HI", Toast.LENGTH_LONG)
                .show();
    }
    return super.onContextItemSelected(item);
}

ここに画像の説明を入力

位置のみを取得していますが、画像にある名前、説明、日付、金額が見つかりません。名前の日付またはお金を使用して、リストビューとデータベースからリストを削除できるようにするにはどうすればよいですか。

4

2 に答える 2

2

質問している情報が不要なレコードを削除する場合、必要なのはデータベース内のレコードの行 ID だけであり、メソッドで使用menuInfo.idしてコンテキスト メニューから取得できますonContextItemSelected

例:

case R.id.delete:
    deleteItem(menuInfo.id);  //  Your delete method with the paramter of the row id
    Toast.makeText(getApplicationContext(),
            "Deleted" + menuInfo.position, Toast.LENGTH_LONG).show();
    return true;

delete メソッド (おそらくデータベース ヘルパー クラス内):

public boolean deleteItem(long rowId) {
    return mDb.delete(YOUR_TABLE, YOUR_ROWID + "=" + rowId, null) > 0;
}
于 2012-10-30T16:26:04.013 に答える
0

以前に同じ問題に直面したことを確認してください

だからあなたへの私の解決策は

View yourView; 

        public void onCreateContextMenu(ContextMenu menu, View v,
                ContextMenuInfo menuInfo) {
            // TODO Auto-generated method stub

            yourView = (TableRow) v; // here you can have your own view in my case i have Table row
            MenuInflater inflater = getMenuInflater();
            inflater.inflate(R.menu.table_row_menu, menu);  

        }

さらに、ビューを取得すると、tag関連付けられたビューの助けを借りて情報を取得します

于 2012-10-30T17:23:49.220 に答える