본문 바로가기
IT/Android

안드로이드 SQLite DB 활용한 고객등록과 조회 3-3

by Jeami 2013. 7. 19.
반응형




안드로이드 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 안드로이드 프로그래밍)




반응형

loading