SQLの窓

2017年09月23日


ViewSwitcher を使用した2画面アプリ (5) : SQLiteデータを更新する

この内容は、ViewSwitcher を使用した2画面アプリ (4) : SQLiteデータをインポートしてリストビューに表示するより続いています。
更新部分に特化したコードにする為に、MainControl をさらに継承して、マニフェストの初期画面を新しいクラス( MainUpdate ) に変更します。 特別な部分は特に無く、更新ボタンをクリックすると更新するだけです。但し、新規と修正の二通りがあるので、textViewCode の表示状態を取得して、どちらを実行するか決定しています。
import android.database.Cursor;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;

public class MainUpdate extends MainControl {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);

		listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
			@Override
			public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
				Log.i("lightbox","タップされました");

				String scode = arrayList.get(position);
				helper.getTextView(R.id.textViewCode).setText(scode);

				// キーを渡して SQLite にアクセスする
				loadData(scode);

				// 画面を切り替える
				helper.showEditView();

			}
		});

		// 更新ボタンの処理
		MainUpdate.this.findViewById(R.id.buttonUpdate).setOnClickListener(new View.OnClickListener() {
			@Override
			public void onClick(View v) {
				Log.i("lightbox","更新ボタンがクリックされました");

				//alertDialog.show();
				helper.showDialog("更新してよろしいですか?", new Helper.OnDialogOkListener() {

					@Override
					public void onDialogOkListener() {
						Log.i("lightbox","ダイアログで、OK ボタンがクリックされました");

						if (  helper.getTextView(R.id.textViewCode).getVisibility() == View.VISIBLE  ) {
							updateData();
						}
						else {
							insertData();
						}

					}

				});

			}
		});
	}

	// *******************************
	// データの更新
	// *******************************
	private void updateData() {

		Log.i("lightbox","updateData");

		String scode = helper.getTextViewString(R.id.textViewCode);
		String sname = helper.getEditTextString(R.id.editText1);
		String furi = helper.getEditTextString(R.id.editText2);

		values.clear();
		values.put("sname", sname);
		values.put("furi", furi);
		db.update("syain", values, String.format("scode='%s'", scode), null);

		loadView();
		helper.showFirstView();
	}

	// *******************************
	// データの登録
	// *******************************
	private void insertData() {

		Log.i("lightbox","insertData");

		String scode = helper.getTextViewString(R.id.editTextCode);
		String sname = helper.getTextViewString(R.id.editText1);
		String furi = helper.getTextViewString(R.id.editText2);

		values.clear();
		values.put("scode", scode);
		values.put("sname", sname);
		values.put("furi", furi);
		db.insert("syain", null, values);

		loadView();
		helper.showFirstView();

	}

	// *******************************
	// 編集用データの表示
	// *******************************
	private void loadData(String scode) {

		String sql = String.format("select * from %s where scode='%s' ", "syain", scode);
		Cursor cursor = mySQLite.getReadableDatabase().rawQuery(sql, null);
		Boolean isData = null;
		isData = cursor.moveToFirst();

		String sname = cursor.getString(cursor.getColumnIndex("sname"));
		helper.setEditTextString(R.id.editText1,sname);
		String furi = cursor.getString(cursor.getColumnIndex("furi"));
		helper.setEditTextString(R.id.editText2,furi);

		cursor.close();

	}

}




【2017 Android Studioの最新記事】
posted by lightbox at 2017-09-23 17:38 | 2017 Android Studio | このブログの読者になる | 更新情報をチェックする
container 終わり



フリーフォントで簡単ロゴ作成
フリーフォントでボタン素材作成
フリーフォントで吹き出し画像作成
フリーフォントではんこ画像作成
ほぼ自由に利用できるフリーフォント
フリーフォントの書体見本とサンプル
画像を大きく見る為のウインドウを開くボタンの作成

CSS ドロップシャドウの参考デモ
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり