안드로이드 개발 질문/답변
(글 수 45,052)
DB에 저장한 내용을 불러오는 것이 잘 안되는 것같아요.
밑에 소스코드 입니다. 여기서는 보기 조금 불편한것같아서 파일도 첨부했습니다...pocket.zip
제가 하고싶은것은 db에 int tot의 값을 저장했다가
불러와서 사용하고, 변경된 값을 다시 db에 저장하는 것입니다.
잘부탁드립니다!!
아////이거 왜 소스 이렇게 나오죠...ㅠㅠ 첨부한 파일로 봐주세요ㅠㅠ
package hr.mirim.pocketmoney;
import android.app.Activity; import android.app.Dialog; import android.content.ContentValues; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.ListView; import android.widget.SimpleCursorAdapter; import android.widget.TextView; import android.widget.Toast;
public class Pocket extends Activity {
PocketDBHelper mHelper; Cursor cursor, cursor2; SQLiteDatabase db, db2; SimpleCursorAdapter Adapter = null;
ListView list; Button credit, expense, back, reset, btn1, btn2, btn3, btn4; EditText et1, et2, et3, et4; Dialog dia1, dia2; TextView total;
final String TABLE_NAME = "pomoney";
int tot = 0;
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.pomoney);
mHelper = new PocketDBHelper(this); db = mHelper.getWritableDatabase();
list = (ListView) findViewById(R.id.listView1); total = (TextView) findViewById(R.id.total);
cursor = db.rawQuery("SELECT * FROM pomoney", null);
startManagingCursor(cursor);
Adapter = new SimpleCursorAdapter(Pocket.this, R.layout.list, cursor,
new String[] { "title", "content" }, new int[] { R.id.text1,
R.id.text2 });
list.setAdapter(Adapter);
db2 = mHelper.getWritableDatabase();
ContentValues values2 = new ContentValues();
values2.put("tot", tot);
db2.insert("total", null, values2);
cursor2 = db2.rawQuery("SELECT * FROM total", null);
startManagingCursor(cursor);
cursor2.moveToFirst();
tot=cursor2.getInt(cursor2.getColumnIndex("tot"));
total.setText(Integer.toString(tot));
credit = (Button) findViewById(R.id.credit);
credit.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
dia1 = new Dialog(Pocket.this);
dia1.setContentView(R.layout.dialog);
dia1.setTitle("수익");
et1 = (EditText) dia1.findViewById(R.id.editText1);
et2 = (EditText) dia1.findViewById(R.id.editText2);
et1.setText("");
et2.setText("");
btn1 = (Button) dia1.findViewById(R.id.btno1);
btn2 = (Button) dia1.findViewById(R.id.btnc1);
btn1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (et1.getText().toString().equals("")
|| et2.getText().toString().equals("")) {
Toast.makeText(Pocket.this, "내용을 빠짐없이 입력해 주세요.",
3000).show();
} else {
tot += Integer.parseInt(et2.getText().toString());
dbdb(et1.getText().toString(), "+ "
+ et2.getText().toString() + " 원");
cursor2.moveToFirst();
total.setText(Integer.toString(cursor2.getInt(0)));
dia1.dismiss();
}
}
});
btn2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
dia1.dismiss();
}
});
dia1.show();
} });
expense = (Button) findViewById(R.id.expense);
expense.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
dia2 = new Dialog(Pocket.this);
dia2.setContentView(R.layout.dialog2);
dia2.setTitle("지출");
et3 = (EditText) dia2.findViewById(R.id.editText3);
et4 = (EditText) dia2.findViewById(R.id.editText4);
btn3 = (Button) dia2.findViewById(R.id.btno2);
btn4 = (Button) dia2.findViewById(R.id.btnc2);
btn3.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (et3.getText().toString().equals("")
|| et4.getText().toString().equals("")) {
Toast.makeText(Pocket.this, "내용을 빠짐없이 입력해 주세요.",
3000).show();
} else {
tot -= Integer.parseInt(et4.getText().toString());
dbdb(et3.getText().toString(), "- "
+ et4.getText().toString() + " 원");
cursor2.moveToFirst();
total.setText(Integer.toString(cursor2.getInt(0)));
dia2.dismiss();
}
}
});
btn4.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
dia2.dismiss();
}
});
dia2.show();
} });
back = (Button) findViewById(R.id.back);
back.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
finish();
}
});
reset = (Button) findViewById(R.id.reset);
reset.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
db.delete(TABLE_NAME, null, null);
cursor = db.rawQuery("SELECT * FROM pomoney", null);
startManagingCursor(cursor);
Adapter = new SimpleCursorAdapter(Pocket.this,
android.R.layout.simple_list_item_2, cursor,
new String[] { "content", "title" }, new int[] {
android.R.id.text1, android.R.id.text2 });
list.setAdapter(Adapter);
tot = 0;
total.setText(Integer.toString(tot));
}
});
}
void dbdb(String str1, String str2) {
SQLiteDatabase db;
db = mHelper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("title", str1);
values.put("content", str2);
db.insert("pomoney", null, values);
cursor = db.rawQuery("SELECT * FROM pomoney", null);
startManagingCursor(cursor);
Adapter = new SimpleCursorAdapter(Pocket.this, R.layout.list, cursor,
new String[] { "title", "content" }, new int[] { R.id.text1,
R.id.text2 });
list.setAdapter(Adapter);
total.setText(Integer.toString(tot));
} }
package hr.mirim.pocketmoney;
import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper;
public class PocketDBHelper extends SQLiteOpenHelper{
public PocketDBHelper(Context context) {
super(context, "pomoneyDB.db", null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
db.execSQL("CREATE TABLE pomoney( _id INTEGER PRIMARY KEY AUTOINCREMENT, title TEXT, content TEXT)");
db.execSQL("CREATE TABLE total( _id INTEGER PRIMARY KEY AUTOINCREMENT, tot integer)");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
} }
감사합니다..
공지사항은 다 읽었어요~




저장이 안된다 하시는게.. insert에서 쿼리 에러가 난다는 말씀이신지요?