Android SQLiteデータ修正、削除-電話帳アプリケーション


緒論


以前のリリースでは、電話帳アプリケーションのデータをSQLiteに保存してロードする機能が追加されました.
保存したデータを削除および変更する機能を追加します.
Android開発者のドキュメントを参考にしました.
https://developer.android.com/training/data-storage/sqlite

削除


-MainActivityにdeleteNumberメソッドを追加し、[LISAクラスタビューをクリック]イベントで[削除]ボタンをクリックしたときに実行します.
		
......
				//리사이클러뷰 클릭 이벤트
        mAdapter.setOnItemClickListener (new Adapter.OnItemClickListener () {\
		......

            //삭제
            @Override
            public void onDeleteClick(View v, int position) {
                String name = mArrayList.get (position).getName ();
                String number = mArrayList.get (position).getNumber ();

                //데이터삭제
                deleteNumber (name, number);

                mArrayList.remove (position);
                mAdapter.notifyItemRemoved (position);
            }

        });
.......
//SQLite 데이터 삭제
    private void deleteNumber(String name, String number) {
        //WHERE 절 삭제될 열을 찾는다.
        String selection = DBHelper.FeedEntry.COLUMN_NAME_NAME + " LIKE ?" +
                " and " + DBHelper.FeedEntry.COLUMN_NAME_NUMBER + " LIKE ?";
				//삭제될 열을 찾을 데이터
        String[] selectionArgs = {name, number};
        db.delete (DBHelper.FeedEntry.TABLE_NAME, selection, selectionArgs);
    }

-Smithを削除します.アプリケーションが閉じた後に実行されると、完全に削除されていることがわかります.

変更


-updateNumber()メソッドをMainActivityに追加し、[修正](Modify)ボタンをクリックして機能します.
		.....
		//SQLite 데이터 수정
    //newName 은 수정된 값, oldName 수정전 값
    private void updateNumber(String oldName, String oldNumber, String newName, String newNumber){
        //수정된 값들을 values 에 추가한다.
        ContentValues values = new ContentValues();
        values.put(DBHelper.FeedEntry.COLUMN_NAME_NAME, newName);
        values.put (DBHelper.FeedEntry.COLUMN_NAME_NUMBER, newNumber);

        // WHERE 절 수정될 열을 찾는다.
        String selection = DBHelper.FeedEntry.COLUMN_NAME_NAME + " LIKE ?" +
                        " AND "+ DBHelper.FeedEntry.COLUMN_NAME_NUMBER + " LIKE ?";
        String[] selectionArgs = { oldName, oldNumber };

        db.update(DBHelper.FeedEntry.TABLE_NAME, values, selection, selectionArgs);
    }
	......

//AlertDialog 를 사용해서 데이터를 수정한다.
    private void editItem(String name, String number, int position) {
      ......
        // 수정 버튼 클릭
        //어레이리스트 값을 변경한다.
        btn_edit.setOnClickListener (new View.OnClickListener () {
            @Override
            public void onClick(View view) {
                String editName = edit_name.getText ().toString ();
                String editNumber = edit_number.getText ().toString ();
                mArrayList.get (position).setName (editName);
                mArrayList.get (position).setNumber (editNumber);

                //데이터 수정메서드 실행
                updateNumber (name,number,editName,editNumber);

                mAdapter.notifyItemChanged (position);
                dialog.dismiss ();
            }
        });
		.......
    }
-MarieをAnnaに変更しました.
-Android StudioでクライアントのSQLiteを表示します.ドロップダウン・メニューは、データベース・インスペクタで表示できます.

-データが変更されていることを確認します.

の最後の部分


-簡単な電話帳アプリを完成しました.入力を受信して保存、変更、または削除できます.これらのデータはグループ外ビューに表示されます.
-すべての4つの位置を確認して、すべてのコードを理解します.コードが再構築されると、リボンに転送されます.
-何か気になることがあったらメッセージをお願いします.
-次の位置は...