package com.example.gcm;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
public class UserDB {
private static final String USERDB_NAME = "UserDB.db";
private static final int DB_VERSION = 1;
public static SQLiteDatabase myDB;
private CreateDB myDBHelper;
private Context myContext;
private class CreateDB extends SQLiteOpenHelper
{
public CreateDB(Context context, String name, CursorFactory factory,
int version) {
super(context, name, factory, version);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(User_Info.CreateWorker._CREATE);
db.execSQL(User_Info.CreateGame._CREATE);
db.execSQL(User_Info.CreateCompany._CREATE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS "+ User_Info.CreateCompany._TABLENAME);
db.execSQL("DROP TABLE IF EXISTS "+ User_Info.CreateGame._TABLENAME);
db.execSQL("DROP TABLE IF EXISTS "+ User_Info.CreateWorker._TABLENAME);
onCreate(db);
}
}
public UserDB(Context context)
{
this.myContext = context;
}
public UserDB open() throws SQLException
{
myDBHelper = new CreateDB(myContext, USERDB_NAME, null , DB_VERSION);
myDB = myDBHelper.getWritableDatabase();
return this;
}
public void close()
{
myDB.close();
}
public long insertWorker(int no, String type, int stat1, int stat2, int stat3,
int stat4, int stat5, int stat6, int stat7, int stat8,
int level,int cost,int experience,int limite){
ContentValues values = new ContentValues();
values.put(User_Info.CreateWorker.W_NO, no);
values.put(User_Info.CreateWorker.TYPE, type);
values.put(User_Info.CreateWorker.STAT1, stat1);
values.put(User_Info.CreateWorker.STAT2, stat2);
values.put(User_Info.CreateWorker.STAT3, stat3);
values.put(User_Info.CreateWorker.STAT4, stat4);
values.put(User_Info.CreateWorker.STAT5, stat5);
values.put(User_Info.CreateWorker.STAT6, stat6);
values.put(User_Info.CreateWorker.STAT7, stat7);
values.put(User_Info.CreateWorker.STAT8, stat8);
values.put(User_Info.CreateWorker.LEVEL, level);
values.put(User_Info.CreateWorker.COST, cost);
values.put(User_Info.CreateWorker.EXPERIENCE_POINT, experience);
values.put(User_Info.CreateWorker.STAT_LIMITE, limite);
return myDB.insert(User_Info.CreateWorker._TABLENAME, null, values);
}
public Cursor getWorker()
{
return myDB.query(User_Info.CreateWorker._TABLENAME, null, null, null, null, null, null);
}
}
import android.provider.BaseColumns;
public class User_Info {
public static final class CreateWorker implements BaseColumns
{
public static final String _TABLENAME = "WorkerInfo";
public static final String W_NO = "Id";
public static final String TYPE = "DepartmentTypes";
public static final String STAT1 = "Stat1";
public static final String STAT2 = "Stat2";
public static final String STAT3 = "Stat3";
public static final String STAT4 = "Stat4";
public static final String STAT5 = "Stat5";
public static final String STAT6 = "Stat6";
public static final String STAT7 = "Stat7";
public static final String STAT8 = "Stat8";
public static final String LEVEL = "Level";
public static final String COST = "Cost";
public static final String EXPERIENCE_POINT = "Experience Point";
public static final String STAT_LIMITE = "Stat Limite";
public static final String _CREATE =
"create table " +_TABLENAME +"("
+ W_NO + " integer primary key, "
+ TYPE + " integer, "
+ STAT1 + " integer, "
+ STAT2 + " integer, "
+ STAT3 + " integer, "
+ STAT4 + " integer, "
+ STAT5 + " integer, "
+ STAT6 + " integer, "
+ STAT7 + " integer, "
+ STAT8 + " integer, "
+ LEVEL + " integer, "
+ COST + " integer, "
+ EXPERIENCE_POINT + " integer, "
+ STAT_LIMITE + " integer);";
}
}
public class MainActivity extends Activity {
private UserDB helper;
private Cursor mycursor;
TextView text;
Button btn;
ArrayList<String> array;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
array = new ArrayList<String>();
btn = (Button) findViewById(R.id.button);
text = (TextView) findViewById(R.id.textView);
helper = new UserDB(this);
helper.open();
helper.insertWorker(1,"Developer", 10, 12, 14, 9, 0, 0, 0, 0, 3, 10, 150, 45);
helper.insertWorker(1,"PR", 0, 0, 0, 0, 6, 5, 0, 0, 3, 10, 150, 45);
helper.insertWorker(1,"Planing", 0, 0, 0, 0, 0, 0, 8,7, 3, 10, 150, 45);
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
mycursor = null;
mycursor = helper.getWorker();
array.clear();
while(mycursor.moveToNext())
{
int no = mycursor.getInt(mycursor.getColumnIndex("Id"));
String type = mycursor.getString(mycursor.getColumnIndex("DepartmentTypes"));
int stat1 = mycursor.getInt(mycursor.getColumnIndex("Stat1"));
int stat2 = mycursor.getInt(mycursor.getColumnIndex("Stat2"));
int stat3 = mycursor.getInt(mycursor.getColumnIndex("Stat3"));
int stat4 = mycursor.getInt(mycursor.getColumnIndex("Stat4"));
int stat5 = mycursor.getInt(mycursor.getColumnIndex("Stat5"));
int stat6 = mycursor.getInt(mycursor.getColumnIndex("Stat6"));
int stat7 = mycursor.getInt(mycursor.getColumnIndex("Stat7"));
int stat8 = mycursor.getInt(mycursor.getColumnIndex("Stat8"));
int level = mycursor.getInt(mycursor.getColumnIndex("Level"));
int cost = mycursor.getInt(mycursor.getColumnIndex("Cost"));
int exp = mycursor.getInt(mycursor.getColumnIndex("Experience Point"));
int limit = mycursor.getInt(mycursor.getColumnIndex("Stat Limite"));
array.add(no+type+stat1+stat2+stat3+stat4+stat5+stat6+stat7+stat8+level+cost+exp+limit);
}
if(array.isEmpty())
{
text.setText("null");
}
else
{
text.setText("correct");
}
mycursor.close();
}
});
}
게임어플에서 사용할 유저데이터를 넣을 DB입니다.
제대로 만들어졌는지 확인할려고 임시로 데이터를 넣고
그걸 꺼내와서 어레이에 넣어 확인할려는데요
계속 어레이에 아무런 데이터도 안써지는 겁니다.
아무래도 테이블생성이나 데이터입력,출력 부분이 문제인거같은데
어디가 문제인지 모르겠습니다.
이 코드는 제가 참조한 예제랑 똑같은 형태로 만들었는데
예제프로그램은 잘 작동하는데 제가 만든건 문제가 생기네요
실행은 잘되고 오류메세지도 없습니다.
단지 데이터가 들어가지 않거나 출력되지 않습니다