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

sqlite 로 달력을 만들었는데 소스에 대한 주석좀 달아주세요.

–1 추천

제가 어느정도 쉬운것들은 주석 달고 설명을 했는데, 몇가지가 막혀서 답이 전체적으로 안나오네요 .. 실행은 되요.. 소스에 대한설명좀 해주시면 감사하겠습니다.

package com.project.schedulerapplication.activity;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.CalendarView;

import com.project.schedulerapplication.R;
import com.project.schedulerapplication.adapter.ScheduleAdapter;
import com.project.schedulerapplication.adapter.ScheduleInterface;
import com.project.schedulerapplication.beans.Schedules;
import com.project.schedulerapplication.db.DatabaseManager;
import com.project.schedulerapplication.ui.DividerItemDecoration;

import java.util.ArrayList;
import java.util.Calendar;

public class MainActivity extends AppCompatActivity implements ScheduleInterface {

    CalendarView calendarView;
    DatabaseManager dbManager;

    RecyclerView recyclerView;
    ScheduleAdapter adapter;

    int mYear = 0;
    int mMonth = 0;
    int mDay = 0;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        calendarView = (CalendarView)findViewById(R.id.calendarView);
        calendarView.setOnDateChangeListener(new CalendarView.OnDateChangeListener() {
            @Override
            public void onSelectedDayChange(CalendarView view, int year, int month, int dayOfMonth) {
                mYear   = year;
                mMonth = month;
                mDay  = dayOfMonth;

                getScheduleList(mYear + "" + (mMonth + 1) + "" + mDay);
            }
        });

        recyclerView = (RecyclerView)findViewById(R.id.listview);

        adapter = new ScheduleAdapter(this);
        dbManager = new DatabaseManager(getApplicationContext(), "schedule.db", null, 1);

        recyclerView.setHasFixedSize(false);
        recyclerView.addItemDecoration(new DividerItemDecoration(MainActivity.this, DividerItemDecoration.VERTICAL_LIST));
        recyclerView.setLayoutManager(new LinearLayoutManager(MainActivity.this));
        recyclerView.setAdapter(adapter);
    }

    @Override
    protected void onResume() {
        super.onResume();

        if(mYear == 0 || mMonth == 0 || mDay == 0) {
            Calendar mcurrentDate = Calendar.getInstance();
            mYear   = mcurrentDate.get(Calendar.YEAR);
            mMonth = mcurrentDate.get(Calendar.MONTH);
            mDay  = mcurrentDate.get(Calendar.DAY_OF_MONTH);
        }

        getScheduleList(mYear + "" + (mMonth + 1) + "" + mDay);
    }

    @Override
    public boolean onPrepareOptionsMenu(Menu menu) {
        menu.clear();

        menu.add("등록").setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
            @Override
            public boolean onMenuItemClick(MenuItem item) {
                // TODO Auto-generated method stub
                Intent intent = new Intent(MainActivity.this, AddSchduleActivity.class);
                startActivity(intent);
                return false;
            }
        }).setIcon(R.drawable.ic_event_white_24dp).setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);

        return super.onPrepareOptionsMenu(menu);
    }

    private void getScheduleList(String date) {

        adapter.clear();

        Schedules schedules = new Schedules();
        schedules.date = date;

        ArrayList<Schedules> list = dbManager.select(schedules);
        for(int i=0; i<list.size(); i++) {
            adapter.addItem(list.get(i));
        }

        adapter.notifyDataSetChanged();
    }

    @Override
    public void deleteScheduleClicked(int position) {
        Schedules schedules = adapter.getItem(position);
        dbManager.delete(schedules);
        adapter.removeItem(position);
        adapter.notifyDataSetChanged();
    }
}
제임슨정 (110 포인트) 님이 2016년 6월 8일 질문

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...