質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

解決済

削除確認ダイアログを使って削除した際のリストを更新する方法を知りたい

sunnyblack
sunnyblack

総合スコア0

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

2回答

0評価

0クリップ

431閲覧

投稿2021/10/23 13:26

編集2021/10/23 14:17

前提・実現したいこと

Android Studioでtodoアプリのようなものを作っています。

MainActivityにリスト一覧が表示されていて、リストの要素を長押しした時に、削除の確認ダイアログが出て、OKがクリックされた時に削除する流れを作ったのですが、削除した後リスト一覧を更新したいのですが、それができず困っています。

削除した後リスト一覧を更新する方法を教えていただきたいです。

該当のソースコード

コードは質問に関連する部分だけを抜粋しています。

MainActivity:

Java

public class MainActivity extends AppCompatActivity {   @Override protected void onResume() { super.onResume(); selectDb(); }   public void selectDb() { _helper = new DatabaseHelper(MainActivity.this); SQLiteDatabase db = _helper.getWritableDatabase(); String[] projection = { DatabaseContract._ID, DatabaseContract.COLUMN_NAME_TITLE, }; _cursor = db.query( DatabaseContract.TABLE_NAME, projection, null, null, null, null, null ); AACursorAdapter _adapter = new AACursorAdapter(MainActivity.this, _cursor); ListView lvMemo = findViewById(R.id.lvMemo); lvMemo.setAdapter(_adapter); lvMemo.setOnItemClickListener(new ListItemClickListener()); lvMemo.setOnItemLongClickListener(new ListItemLongClickListener()); } private class ListItemClickListener implements AdapterView.OnItemClickListener{ @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { } } private class ListItemLongClickListener implements AdapterView.OnItemLongClickListener { @Override public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) { DeleteConfirmDialogFragment dialogFragment = new DeleteConfirmDialogFragment(); _cursor = (Cursor) parent.getItemAtPosition(position); int memoId = _cursor.getInt(0); String memoTitle = _cursor.getString(1); int main = -3; Bundle args = new Bundle(); args.putString("memoTitle", memoTitle); args.putInt("memoId", memoId); args.putInt("activity", main); dialogFragment.setArguments(args); dialogFragment.show(getSupportFragmentManager(), "DeleteConfirmDialogFragment"); return true; } } }

AACursorAdapter:

Java

public class AACursorAdapter extends CursorAdapter { private LayoutInflater mInflater; public AACursorAdapter(Context context, Cursor cursor) { super(context, cursor); mInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); } static class ViewHolder { TextView title; } @Override public View newView(Context context, Cursor cursor, ViewGroup viewGroup) { View view = mInflater.inflate(R.layout.memo_list_item, null); ViewHolder holder = new ViewHolder(); holder.title = (TextView) view.findViewById(R.id.tvTitle); view.setTag(holder); return view; } @Override public void bindView(View view, Context context, Cursor cursor) { ViewHolder holder = (ViewHolder) view.getTag(); int memoId = cursor.getInt(0); String memoTitle = cursor.getString(1); holder.title.setText(memoTitle); } }

DeleteConfirmDialogFragment:

Java

public class DeleteConfirmDialogFragment extends DialogFragment { String _memoTitle; int _memoId; int _activity; Activity _parentActivity; @Override public Dialog onCreateDialog(Bundle savedInstanceState){ _memoTitle = getArguments().getString("memoTitle", ""); _memoId = getArguments().getInt("memoId", -1); _activity = getArguments().getInt("activity", 0); AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); String message = _memoTitle + getString(R.string.dialog_msg_delete); builder.setTitle(R.string.dialog_title_delete); builder.setMessage(message); builder.setPositiveButton(R.string.dialog_btn_ok, new DialogButtonClickListener()); builder.setNegativeButton(R.string.dialog_btn_ng, new DialogButtonClickListener()); AlertDialog dialog = builder.create(); return dialog; } private class DialogButtonClickListener implements DialogInterface.OnClickListener { @Override public void onClick(DialogInterface dialog, int which) { String msg = ""; switch (which){ case DialogInterface.BUTTON_POSITIVE: delete(); msg = _memoTitle + getString(R.string.dialog_ok_delete_toast); if (_activity == -5){ _parentActivity.finish(); } else if(_activity == -3) { //_parentActivity. } break; case DialogInterface.BUTTON_NEGATIVE: msg = getString(R.string.dialog_ng_delete_toast); break; } Toast.makeText(getActivity(), msg, Toast.LENGTH_LONG).show(); } } public void delete() { _parentActivity = getActivity(); DatabaseHelper helper = new DatabaseHelper(_parentActivity); try (SQLiteDatabase db = helper.getWritableDatabase()){ db.delete(DatabaseContract.TABLE_NAME, DatabaseContract._ID + " = ? ", new String[] {String.valueOf(_memoId)}); } } }

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

jimbe

2021/10/23 13:56

肝心の"リスト一覧"に関する部分が必要です。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。