안드로이드 SQLite DB 활용한 고객등록과 조회 3-3
마지막 시간입니다.
CustomerRegActivity.java 파일을 생성할건데요.
고객정보를 등록하는 파일입니다. 이 클래스 안에 고객정보를 등록하는 절차를 기술하는 것입니다.
기본적인 절차는 "등록" 버튼의 클릭 대기 ~ 클릭 시의 onClick() 메소드 재정의 부분이 되겠습니다.
onClikc() 메소드에서는 customers 테이블에 사용자가 입력한 고객정보를 추가하고 '고객목록' 액티비티로 이동하는 기능을 작성 할 겁니다.
"" 등록버튼 클릭 대기 ==> 클릭 후 DB 저장 코딩 기술 ==> 리스트 화면으로 이동 "" 까지의 기능이 포함되겠습니다.
이 글이 도움이 되신다면, 로그인 필요없이 추천버튼 클릭 부탁드릴게요^^
양질의 정보로 보답하겠습니다.
CustomerRegActivity.java
package com.example.dbtest;
import android.app.Activity;
import android.content.Intent;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteException;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.RadioGroup;
public class CustomerRegActivity extends Activity implements OnClickListener {
private DBManager dbmgr;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.join_form);
setTitle("고객등록");
// ID가 Button_Store인 버튼 인식 및 클릭 대기, OnClick()메소드 실행
Button btn_store = (Button)findViewById(R.id.button_store);
btn_store.setOnClickListener(this);
// ID가 Button_list인 버튼 인식 및 클릭 대기, OnClick()메소드 실행
Button btn_list = (Button)findViewById(R.id.button_list);
btn_list.setOnClickListener(this);
}
public void onClick(View v) {
// '목록' 버튼을 클릭한 경우, 고객목록으로 이동
if (v.getId() == R.id.button_list) {
// 현재 클래스에서 호출할 클래스 지정
Intent it = new Intent(this, CustomerListActivity.class);
// 이텐트에서 지정한 액티비티 실행
startActivity(it);
// 현재 액티비티 종료
finish();
}
// 성명 추출
EditText et_name = (EditText)findViewById(R.id.edit_name);
String str_name = et_name.getText().toString();
// 성별 추출
RadioGroup rg_sex = (RadioGroup)findViewById(R.id.radiogroup_sex);
String str_sex = "";
if (rg_sex.getCheckedRadioButtonId() == R.id.radio_male) {
str_sex = "남";
}
if (rg_sex.getCheckedRadioButtonId() == R.id.radio_female) {
str_sex = "여";
}
// 수신여부 추출
CheckBox chk_sms = (CheckBox)findViewById(R.id.check_sms);
String str_sms = "";
if (chk_sms.isChecked()) {
str_sms = (String)chk_sms.getText();
}
try {
// DB객체 생성(DB가 존재하지 않으면 생성함)
dbmgr = new DBManager(this);
SQLiteDatabase sdb;
// DB연결
sdb = dbmgr.getWritableDatabase();
// members 테이블에 추출정보 추가
sdb.execSQL("insert into customers values('" + str_name + "', '" + str_sex + "', '" + str_sms + "');");
// DB닫음
dbmgr.close();
} catch (SQLiteException e) {
// 예외처리(생략)
}
// 현재 클래스(This)에서 호출할 클래스(QueryActivity.class) 지정
Intent it = new Intent(this, CustomerListActivity.class);
// 이텐트에서 지정한 액티비티 실행
startActivity(it);
// 현재 액티비티 종료
finish();
}
}
클래스 및 메소드 이해
SQLiteOpenHelper
getWritableDatabase() : 기록이나 조회에 유용한 데이터베이스를 생성하거나, 오픈.
(데이터베이스 객체인 SQLiteDatabase 객체를 반환)
SQL문의 이해
1. 데이터가 문자일 경우
==> insert into customers values('Kanna', 'male', ' use SMS', '심리/상담')
2. 데이터가 변수일 경우]
==> execSQL("insert into customers values( ' " + str_name + "' , ' " + str_sex + " ' , ' " + str_sms + " ' , ' " + str_interest + " ' );");
이제 마지막 부분입니다.
안드로이드는 액티비티를 추가하게 되면 항상 AndroidMainfest.xml 을 수정해줘야 합니다.
해당하틑 액티비티를 추가해줘야 하기 때문입니다.
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.dbtest"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="10"
android:targetSdkVersion="10" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.dbtest.CustomerListActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".CustomerRegActivity"
android:label="@string/act_join_form">
</activity>
</application>
</manifest>
처음 실행 화면
고객등록 버튼 클릭 후 이동화면
작성 후 등록버튼 클릭 후 이동화면
고객을 한 명 더 추가 한 화면
목록버튼 클릭 후 이동화면
(참고교재 : step by step 안드로이드 프로그래밍)
'IT > Android' 카테고리의 다른 글
안드로이드 SQLite DB 활용한 고객등록과 조회 3-2 (0) | 2013.07.19 |
---|---|
안드로이드 SQLite DB 활용한 고객등록과 조회 3-1 (0) | 2013.07.18 |
WebView / 웹 문서 / 웹 뷰 (0) | 2013.07.16 |
Android 고객등록/정보전달 02 (0) | 2013.07.15 |
Android(안드로이드) 웹서버 (0) | 2013.07.15 |