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

sqlite 데이터 값 가져오기..해매고 있습니다..ㅜ도와주세요..

0 추천

안드로이드 게임을 구현하고 있는데(대충 드래곤 플라이 같은)

게임 화면 상단에는 점수를 나타내고 있어요.
여기에다가 최고점수를 따로 나타내려고 하는데
 
sqllite를 이용해서 값을 저장하는데 까지는 된거 같은데
 
그 값을 읽어와서 게임 화면에 뿌려주는 방법을 모르겠습니다..
 
 
값을 저장하는데 까지라도 맞는지 좀 확인해주시고
데이터 값 가져와서 뿌려주는 방법좀 알려주시면 정말 감사드리겠습니다..책보고 구글링해도
도저히 모르겠어요..몇일 째..
-------------------------------------------------------------------------------------
게임 상태를 나타내는 GameState.java 안에 Sqlite 클래스를 만들어서 db저장을 하고 있어요.
score가 점수. 터치를 하게되면 score 값이 들어가게 했는데 이 방법이 옳은건진 모르겠네요 ;
-------------------------------------------------------------------------------------
public class Sqlite extends View {
DBHelper m_Helper;

public Sqlite(Context context) {
super(context);
m_Helper = new DBHelper(context, "rank.db", null, 1);
}
public boolean onTouchEvent(MotionEvent event) {
SQLiteDatabase db = m_Helper.getWritableDatabase();

ContentValues row = new ContentValues();
Random rand = new Random();
row.put("score", rand.nextInt(100));

db.insert("RankBoard", null, row);

db.close();

invalidate();
return super.onTouchEvent(event);
}
}

 

-------------------------------------------------------------------------------------
DBHelper.java
-------------------------------------------------------------------------------------
package org.Game;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;

public class DBHelper extends SQLiteOpenHelper{

public DBHelper(Context context, String name, CursorFactory factory,
int version) {
super(context, name, factory, version);
// TODO Auto-generated constructor stub
}

@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE RankBoard(score INTEGER);");
}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub

}
}

 

-------------------------------------------------------------------------------------
 
어떻게 해야할까요 ㅜㅜㅜㅜㅜㅜㅜ
ㄴㅇㄴㅇㅇㄴㄹㄴㅇㅁ (140 포인트) 님이 2013년 12월 22일 질문

1개의 답변

0 추천
틀린부분이 많네요.

먼저 보이는부분들부터 보자면 저장하는코드만보면 맞습니다.

그런데 onTouchEvent 에서 작업을 하게되면 너무 자주 이벤트가발생합니다.

GestureDetector사용해서 onSingleTapConfirmed에서 저장작업을 해주시고

저장시 중복처리가 안되어있네요. 이벤트 들어올때마다 같은값의 로우가 계속쌓이겠어요.

그리고 테이블 생성쪽도 다시 보셔야 할것같네요.
얼룩돼지 (15,720 포인트) 님이 2013년 12월 23일 답변
...