안드로이드 SQLite 관련 질문입니다 제발 도와주세요
조회수 677회
어떻게 설명을 해야할지 몰라 메인 전체 코드를 복사해온것은 정말 죄송합니다...
현재 제가 하려고하는 것은 가계부로 각 날짜를 선택하면 그 날 썼던 가계부 내용을 보고싶은데 캘린더뷰에서 오늘 날짜를 다시 한 번 클릭하면 내역이 싹 사라집니다.
그런데 SQLite에 데이터를 추가하거나 앱을 껐다 켜면 내역들이 다시 보입니다.
이런식으로요. 다른 날짜를 열어도 똑같이 기록되었던 것들은 안 보이고 빈 화면만 보입니다.
오류도 안 뜨고 내역 리스트 부분이 문제인가싶은데도 정확하게 어디가 문제인지 잘 모르겠습니다. 도움을 주셨으면 좋겠습니다.
public class MainActivity extends AppCompatActivity {
private TextView dateTextView, totalTextView;
private ListView listView;
private FloatingActionButton addBtn;
MyDBHelper myDBHelper;
SQLiteDatabase db;
Cursor cursor;
MyCursorAdapter myCursorAdapter;
private String view_date = getToday();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// DB 생성
myDBHelper = new MyDBHelper(this);
db = myDBHelper.getWritableDatabase();
dateTextView = (TextView)findViewById(R.id.dateTextView);
totalTextView = (TextView)findViewById(R.id.totalTextView);
listView = (ListView)findViewById(R.id.listView);
addBtn = (FloatingActionButton)findViewById(R.id.addBtn);
// 날짜 받아오기
Intent dateIntent = getIntent();
String date = dateIntent.getStringExtra("date");
if(!TextUtils.isEmpty(date)) {
view_date = date;
dateTextView.setText(date);
} else {
dateTextView.setText(view_date);
}
// Total 가격 표시
String queryPriceSum = String.format("SELECT SUM(price) FROM %s WHERE date = '%s'", TABLE_NAME, view_date);
cursor = db.rawQuery(queryPriceSum, null);
cursor.moveToNext();
String sum = String.valueOf(cursor.getInt(0));
totalTextView.setText(sum + " 원");
// 내역 리스트
String querySelectAll = String.format("SELECT * FROM %s WHERE date = '%s'", TABLE_NAME, view_date);
cursor = db.rawQuery(querySelectAll, null);
myCursorAdapter = new MyCursorAdapter(this, cursor);
listView.setAdapter(myCursorAdapter);
// 날짜 선택
dateTextView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(MainActivity.this, CalendarActivity.class));
finish();
}
});
// 데이터 입력
addBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(MainActivity.this, AddDataActivity.class));
finish();
}
});
}
}
-
(•́ ✖ •̀)
알 수 없는 사용자
댓글 입력