android 2.2(api 8)로 작업하고 있습니다.

 

인터넷에 떠도는 달력 소스와 디비 활용 소스를 하나로 합칠려고 하는데요

 

 

 

<자바 소스입니다.>

 
package com.android.dbtest1;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Date;
import java.util.Vector;
import android.app.Activity;
import android.database.Cursor;
import android.graphics.Color;
import android.os.Bundle;
import android.util.Log;
import android.view.Gravity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.TableLayout;
import android.widget.TableRow;
import android.widget.TextView;
public class DbTest1Activity extends Activity implements OnClickListener {
 EditText editName, editCost, editNewName, editNewCost;
 Button btAdd, btDelete, btUpdate;
 ListView listBook;
 String outputFilePath;
 BookDbAdapter bookAdapter;
 Cursor cursor;
 BookCursorAdapter cursorAdapter;
 Vector vec;
 int firstDay;
 int totDays;
 int iYear;
 int iMonth;
 public void onCreate1(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);
  Date today = new Date();
  iYear = today.getYear();
  iMonth = today.getMonth();
  vec = new Vector();
  TableLayout table = (TableLayout) findViewById(R.id.table);
  for (int i = 0; i < 6; i++) {
   TableRow tr = new TableRow(this);
   for (int j = 0; j < 7; j++) {
    TextView tv = new TextView(this);
    if (j == 0)
     tv.setTextColor(Color.RED);
    else if (j == 6)
     tv.setTextColor(Color.BLUE);
    else
     tv.setTextColor(Color.BLACK);
    tv.setGravity(Gravity.CENTER_HORIZONTAL);
    tr.addView(tv);
    vec.add(tv);
   }
   table.addView(tr);
  }
  table.setStretchAllColumns(true);
  table = (TableLayout) findViewById(R.id.week);
  table.setStretchAllColumns(true);
  setCalendar(iYear, iMonth);
  Button btn = (Button) findViewById(R.id.pre);
  btn.setOnClickListener(new Button.OnClickListener() {
   public void onClick(View v) {
    iMonth--;
    setCalendar(iYear, iMonth);
   }
  });
  btn = (Button) findViewById(R.id.next);
  btn.setOnClickListener(new Button.OnClickListener() {
   public void onClick(View v) {
    iMonth++;
    setCalendar(iYear, iMonth);
   }
  });
 }
 private void setCalendar(int year, int month) {
  Date date = new Date();
  date.setYear(year);
  date.setMonth(month);
  date.setDate(1);
  firstDay = date.getDay();
  totDays = 31;
  for (int i = 29; i <= 32; i++) {
   date.setDate(i);
   if (date.getDate() == 1) {
    totDays = i - 1;
    break;
   }
  }
  Log.i("mylog", firstDay + " " + totDays);
  date = new Date();
  date.setYear(year);
  date.setMonth(month);
  iYear = date.getYear();
  iMonth = date.getMonth();
  TextView tvToday = (TextView) findViewById(R.id.today);
  tvToday.setText((iYear + 1900) + "년" + (iMonth + 1) + "월");
  for (int i = 0; i < vec.size(); i++) {
   ((TextView) vec.get(i)).setText("");
  }
  int iDate = 1;
  for (int i = firstDay; i < firstDay + totDays; i++) {
   ((TextView) vec.get(i)).setText(String.valueOf(iDate++));
  }
 }
 /** Called when the activity is first created. */
 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);
  init();
 }
 public void init() {
  editName = (EditText) findViewById(R.id.editText1);
  editCost = (EditText) findViewById(R.id.editText2);
  editNewName = (EditText) findViewById(R.id.editText3);
  editNewCost = (EditText) findViewById(R.id.editText4);
  listBook = (ListView) findViewById(R.id.listView1);
  btAdd = (Button) findViewById(R.id.button1);
  btDelete = (Button) findViewById(R.id.button2);
  btUpdate = (Button) findViewById(R.id.button3);
  if (btAdd != null)
   btAdd.setOnClickListener(this);
  if (btDelete != null)
   btDelete.setOnClickListener(this);
  if (btUpdate != null)
   btUpdate.setOnClickListener(this);
  bookAdapter = new BookDbAdapter(this);
  copyDbToPkg();
  bookAdapter.open(outputFilePath);
  setListFromDb();
 }
 public void onClick(View v) {
  // TODO Auto-generated method stub
  if (v == btAdd) {// Add book into db.
   try {
    String strName = editName.getText().toString();
    String strCost = editCost.getText().toString();
    double digitCost = 0;
    Log.i("BTN CLICKED", strName + ":" + strCost);
    if (strName != null && strCost != null) {
     digitCost = Integer.parseInt(strCost);
     bookAdapter.insertBook(strName, digitCost);
    }
   } catch (Exception e) {
    e.printStackTrace();
   }
  } else if (v == btDelete) {
   String strId = editNewName.getText().toString();
   int deleteId = -1;
   deleteId = Integer.parseInt(strId);
   bookAdapter.deleteBook(deleteId);
  } else if (v == btUpdate) {
   String strId = editName.getText().toString();
   int deleteId = -1;
   deleteId = Integer.parseInt(strId);
   String strName = editNewName.getText().toString();
   String strCost = editNewCost.getText().toString();
   double newCost = Double.parseDouble(strCost);
   bookAdapter.updateBook(deleteId, strName, newCost);
  }
  notifyListDataChanged();
 }
 public void notifyListDataChanged() {
  cursorAdapter.getCursor().requery();
  cursorAdapter.notifyDataSetChanged();
 }
 public void setListFromDb() {
  cursor = bookAdapter.fetchAllBooks();
  Log.i("BTN CLICKED", "cursor:" + cursor.getCount());
  cursorAdapter = new BookCursorAdapter(this, cursor);
  listBook.setAdapter(cursorAdapter);
 }
 public void copyDbToPkg() {
  // DB Copy
  try {
   // ** 이부분을 넣지않으면 몇몇 기기에서 데이터베이스가 정상적으로 복사되지 않습니다 **//
   // bookAdapter.mDb= bookAdapter.getReadableDatabase();
   // bookAdapter.mDb.close();
   outputFilePath = this.getFilesDir() + "/book.db";
   if (!isFileExists("book", this.getFilesDir().toString())) {
    // InputStream is =
    // this.getResources().openRawResource(R.raw.book);
    InputStream is = this.getAssets().open("book.db");
    // **zip파일일 경우
    // ZipInputStream zis = new ZipInputStream(is);
    // zis.getNextEntry();
    FileOutputStream fos = new FileOutputStream(outputFilePath);
    byte[] buffer = new byte[4096];
    while (true) {
     int readSize = is.read(buffer, 0, buffer.length);
     if (readSize == -1)
      break;
     fos.write(buffer, 0, readSize);
    }
    fos.close();
    // zis.close();
    is.close();
   } else
    Log.i("TEST_KSI", "db is already copied");
  } catch (IOException e) {
   e.printStackTrace();
  }
 }
 public boolean isFileExists(String fileName, String filePath) {
  boolean result = false;
  File file = new File(filePath, fileName + ".db");
  if (file.exists())
   result = true;
  return result;
 }
}



 

 

 

<xml 소스입니다>

 
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_gravity="center_horizontal"
    android:orientation="vertical" >
    <LinearLayout
        android:id="@+id/menu"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="10px"
        android:layout_marginRight="10px"
        android:layout_marginTop="10px"
        android:orientation="horizontal" >
        <Button
            android:id="@+id/pre"
            android:layout_width="wrap_content"
            android:layout_height="fill_parent"
            android:layout_weight="1"
            android:text="이전" />
        <TextView
            android:id="@+id/today"
            android:layout_width="wrap_content"
            android:layout_height="fill_parent"
            android:layout_weight="3"
            android:gravity="center_horizontal|center_vertical"
            android:text="today"
            android:textColor="#FFFFFFFF" />
        <Button
            android:id="@+id/next"
            android:layout_width="wrap_content"
            android:layout_height="fill_parent"
            android:layout_weight="1"
            android:text="다음" />
    </LinearLayout>
    <TableLayout
        android:id="@+id/week"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/menu"
        android:layout_marginLeft="10px"
        android:layout_marginRight="10px"
        android:background="#FF8DC701"
        android:shrinkColumns="true"
        android:stretchColumns="true" >
        <TableRow >
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:gravity="center_horizontal"
                android:text="일"
                android:textColor="#FFFF0000" />
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:gravity="center_horizontal"
                android:text="월"
                android:textColor="#FF000000" />
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:gravity="center_horizontal"
                android:text="화"
                android:textColor="#FF000000" />
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:gravity="center_horizontal"
                android:text="수"
                android:textColor="#FF000000" />
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:gravity="center_horizontal"
                android:text="목"
                android:textColor="#FF000000" />
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:gravity="center_horizontal"
                android:text="금"
                android:textColor="#FF000000" />
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:gravity="center_horizontal"
                android:text="토"
                android:textColor="#FF0000FF" />
        </TableRow>
    </TableLayout>
    <TableLayout
        android:id="@+id/table"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/week"
        android:layout_marginLeft="10px"
        android:layout_marginRight="10px"
        android:background="#FFF6F3A4" />
    <LinearLayout
        android:id="@+id/linearLayout1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/table" >
        <EditText
            android:id="@+id/editText1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="0.26" >
            <requestFocus >
            </requestFocus>
        </EditText>
        <EditText
            android:id="@+id/editText2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="0.26" >
        </EditText>
        <Button
            android:id="@+id/button1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="0.26"
            android:text="INSERT" >
        </Button>
    </LinearLayout>
    <LinearLayout
        android:id="@+id/linearLayout2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/linearLayout1" >
        <EditText
            android:id="@+id/editText3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="0.26" >
        </EditText>
        <EditText
            android:id="@+id/editText4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="0.26" >
        </EditText>
        <Button
            android:id="@+id/button2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="DELETE" >
        </Button>
        <Button
            android:id="@+id/button3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="UPDATE" >
        </Button>
    </LinearLayout>
    <ListView
        android:id="@+id/listView1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:layout_below="@+id/linearLayout2" >
    </ListView>
</LinearLayout>


 

 실행을 해보면 달력의 월화수목금토일까지는 나오는데

그 아래에 날짜가 출력이 되지 않습니다.

처음 안드로이드 개발을 해보는 거라 모르는게 많은데요

시간 내 주셔서 해결 방법 알려주시길 부탁드립니다.

 

질문 전에 공지 읽었습니다.