안드로이드 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();
            }
        });
    }
}

  • (•́ ✖ •̀)
    알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)