마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

데이터베이스 저장해서 새로운 액티비티에 띄우기..

+1 추천
dbcon.java

package com.example.datainfo;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteConstraintException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

 

public class Dbcon {
 public static final String KEY_NUM = "num";
 public static final String KEY_NAME= "name";
 public static final String KEY_HEIGHT = "height";
 public static final String KEY_KG= "kg";
 public static final String KEY_AGE = "age";
 
 
 
 public static final String DATABASE_NAME = "db5";
 public static final String TABLE_NAME = "member3";
 private static final int DATABASE_VERSION = 2;
 
 private SQLiteDatabase mDb;
 private DatabaseHelper mDbHelper;
 private static final String DATABASE_CREATE = "CREATE TABLE member3("
             + "num Integer primary key autoincrement,"
             + "name Text not null,"  
             + "height text not null,"
             + "kg text not null,"
             + "age text not null)";//학생 데이터베이스 추가            
 private final Context context;
 
 private ContentValues insertInitialValues;
 
 //생성자
 public Dbcon(Context context) {
  this.context = context;
 }
 
 //DB 쓰기용 오픈
 public Dbcon openWritable() throws SQLException {
  mDbHelper = new DatabaseHelper(context);
  mDb = mDbHelper.getWritableDatabase();
  return this;
 }
 
 //DB 읽기용 오픈
 public Dbcon openReadable() throws SQLException {
  mDbHelper = new DatabaseHelper(context);
  mDb = mDbHelper.getReadableDatabase();
  return this;
 }
 
 //DB 닫기
 public void close() {
  mDbHelper.close();
 }
 
 
 //INSERT 문
 public long insertTitle(String name,String height, String kg, String age) throws SQLiteConstraintException {
  insertInitialValues = new ContentValues();      
  insertInitialValues.put(KEY_NAME, name);
  insertInitialValues.put(KEY_HEIGHT, height);
  insertInitialValues.put(KEY_KG, kg);
  insertInitialValues.put(KEY_AGE, age);
  return mDb.insertOrThrow(TABLE_NAME, null, insertInitialValues);
 }
 
 //SELECT 문
 public Cursor fetchData() {
  return mDb.query(
    TABLE_NAME,
    new String[] {KEY_NUM,KEY_NAME,KEY_HEIGHT,KEY_KG,KEY_AGE},
    null,
    null,
    null,
    null,
    null);
 }
 //delete문
 public void delTitle(){
  mDb.delete(TABLE_NAME, null, null);  
 }

 
 //테이블을 관리하는 클래스
 private static class DatabaseHelper extends SQLiteOpenHelper {
  
  //생성자
  public DatabaseHelper(Context context) {
   super(context, DATABASE_NAME, null, DATABASE_VERSION);
   // TODO Auto-generated constructor stub
  }

  //테이블 생성
  @Override
  public void onCreate(SQLiteDatabase db) {
   // TODO Auto-generated method stub
   db.execSQL(DATABASE_CREATE);//사용자디비   
  }

  //테이블 업그레이드
  @Override
  public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
   // TODO Auto-generated method stub   
  }
 }

}

--------------------------------------------------------

MainActivity.java

 

package com.example.datainfo;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

 

public class MainActivity extends Activity {
 AlertDialog.Builder ad;
 EditText name, height, kg, age;
 Button save;
 Dbcon dbcon;
 

 
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  dbcon = new Dbcon(this);
  ad = new AlertDialog.Builder(this);
  name = (EditText)findViewById(R.id.editText1);
  height = (EditText)findViewById(R.id.editText2);
  kg = (EditText)findViewById(R.id.editText3);
  age = (EditText)findViewById(R.id.editText4);
 
  save = (Button)this.findViewById(R.id.button1);
   save.setOnClickListener(new Button.OnClickListener(){
   
    public void onClick(View v) {
   

    Intent intent= new Intent(MainActivity.this,ResultActivity.class);
    startActivity(intent);
   
    }
   });
 }
}

 

------------------------

ResultActivity.java

결과 화면

package com.example.datainfo;

 

import android.database.Cursor;
import android.os.Bundle;
import android.widget.TextView;
import android.widget.Toast;

public class ResultActivity extends MainActivity  {
 
 TextView text;
 String message = new String();

 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
 
  setContentView(R.layout.activity_result);

  text = (TextView)this.findViewById(R.id.textView11);
  
  // TODO Auto-generated method stub    
  try{
   dbcon.openWritable();
   dbcon.insertTitle(name.getText().toString(), height.getText().toString(),kg.getText().toString(), age.getText().toString());        
  ad.setMessage("입력 성공");    
   ad.show();
  }catch(Exception ex){
   Toast t = Toast.makeText(ResultActivity.this, ex.toString(), Toast.LENGTH_LONG);
   t.show();
  }
   
        Cursor cursor = dbcon.fetchData();  
        while(!cursor.isLast()){
         cursor.moveToNext();
         message = message.concat("번호 : " + cursor.getString(0) + "\n"
            + "이름 : " + cursor.getString(1)  + "\n"
            + "키: " + cursor.getString(2)  + "\n"
            + "몸무게 : " + cursor.getString(3)  + "\n"
            + "나이 : " + cursor.getString(4)+
            "------------------\n");                      
        }                                        
        cursor.close();
        dbcon.close();
        text.setText(message);
       
        //입력박스 초기화
        /*
        message="";
        name.setText("");
        height.setText("");
        kg.setText("");
        age.setText("");
*/
 }

}

자동으로 증가되느 번호만 나오고 다른

입력정보는 하나도 안나와요...

왜그러는걸까요 ..
익명사용자 님이 2013년 5월 13일 질문

1개의 답변

0 추천

MainActivity에서 ResultActivity로 데이터를 하나도 안넘기네요?

Intent.putExtra()등 으로 데이터 넘겨서 insert하세요

노예의집 (23,370 포인트) 님이 2013년 5월 15일 답변
...