

우선 이전 액티비티에서 버튼을 클릭하면 현재 시간과 날짜를 읽어옵니다.(화면엔 나오지는 않지만 gps수신하여 현재위치도 수신합니다.) 위의 두값(현재시간과날짜, 현재위치)을 intent로 넘겨서 밑에 소스의 액티비티로 넘겨줍니다.
그 값을 받은 데이터를 나타낸 DB 그림입니다.
간신히 db에 넣는것은 성공은 했습니다만.
이걸 Listview에 뿌리질 못하겠네요.
현재는 가장 최신 데이터만 화면에 나타나고
나머지 데이터는 그냥 db에 저장되어 있을뿐입니다. 누적되어 밑으로 쭉 나열하고 싶습니다.
소스 수정 좀 부탁드립니다. 퇴근하고 싶습니다.ㅠ
package com.example.gps0528;
import java.util.ArrayList;
import android.app.Activity;
import android.app.ListActivity;
import android.content.Context;
import android.content.Intent;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
import android.os.Bundle;
import android.util.Log;
import android.widget.ArrayAdapter;
import android.widget.CursorAdapter;
import android.widget.ListView;
import android.widget.TextView;
public class dbActivity extends ListActivity {
ArrayList<String> item;
ArrayAdapter<String> adapter;
ListView listo;
TextView data;
Context context;
DBHelper dbHelper;
final static String dbname = "Terbo.db";
final static int dbVersion = 4;
SQLiteDatabase db;
String sql;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.activity2nd);
// TODO Auto-generated method stub
Intent intent = getIntent();
String time = intent.getExtras().getString("time").toString();
String juso = intent.getExtras().getString("local").toString();
//TextView data = (TextView)findViewById(R.id.KKK);
//data.setText(time+" "+juso);
//db에 저장
dbHelper = new DBHelper(this, dbname, null, dbVersion);
db = dbHelper.getWritableDatabase();
sql=String.format("INSERT INTO turbo(time,juso) VALUES('%s', '%s');", time, juso);
Log.d("tag", sql);
//sql=String.format("INSERT INTO friend VALUES('%s', '%s')", time, juso);
db.execSQL(sql);
//item.add(item);
//item.add(time+juso);
//dbHelper.close();
item = new ArrayList<String>();
//item.add(data.getText().toString());
//item.add(intent.getExtras().getString("time").toString()+intent.getExtras().getString("local").toString());
item.add(time+juso);
//dbHelper = new DBHelper(this, dbname, null, dbVersion);
//SQLiteDatabase db;
//String sql;
//db = dbHelper.getWritableDatabase();
//sql = String.format("INSERT INTO dbname VALUES(null, '&s', '&s');", time, juso);
//db.execSQL(sql);
adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_multiple_choice, item);
getListView().setTextFilterEnabled(true);
//리스트액티비티의 아이디 찾는 방법은 다르다.
listo = (ListView)findViewById(android.R.id.list);
listo.setAdapter(adapter);
//adapter.notifyDataSetChanged();
//CursorAdapter adaper = (CursorAdapter)getListAdapter();
//adapter.getCursor().requery();
adapter.notifyDataSetChanged();
}
public class DBHelper extends SQLiteOpenHelper {
//생성자
public DBHelper(Context context, String name, CursorFactory factory, int version) {
super(context, name, factory, version);
}
//최초 DB를 만들때 한번만 호출된다.
@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
db.execSQL("CREATE TABLE turbo(_id INTEGER PRIMARY KEY AUTOINCREMENT,"+ "time INTEGER not null, juso TEXT not null);");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
db.execSQL("DROP TABLE IF EXISTS turbo");
onCreate(db);
}
}
}