안드로이드 개발 질문/답변
(글 수 45,052)
public class PList extends Activity {
MyTime mtmp_plist;
ArrayList<Integer> mptime;
ArrayList<MyTime> mplist = new ArrayList<MyTime>();
MyListAdapter MyAdapter;
PlistHelper mPlistHelper;
String Filename;
@SuppressWarnings("unchecked")
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.plist);
mPlistHelper = new PlistHelper(this);
Intent int_pl = getIntent();
String Filename_tmp = int_pl.getStringExtra("FileName");
Filename = Filename_tmp;
Toast.makeText(this, Filename, Toast.LENGTH_SHORT).show();
ArrayList<Integer> ptime_tmp = (ArrayList<Integer>)int_pl.getSerializableExtra("pointlist");
mptime = ptime_tmp;
// 처음, 마지막초 저장 X
for(int i = 1; mptime.size()-2 > i; i++ ){
mtmp_plist = new MyTime(String.format("%2d. %s", i, SetTime.set_time(mptime.get(i)/1000)));
mplist.add(mtmp_plist);
}
MyAdapter = new MyListAdapter(this, R.layout.plist_context, mplist);
ListView list = (ListView)findViewById(R.id.plist_ListView);
list.setAdapter(MyAdapter);
list.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
}
MyTime mtmp_plist;
ArrayList<Integer> mptime;
ArrayList<MyTime> mplist = new ArrayList<MyTime>();
MyListAdapter MyAdapter;
PlistHelper mPlistHelper;
String Filename;
@SuppressWarnings("unchecked")
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.plist);
mPlistHelper = new PlistHelper(this);
Intent int_pl = getIntent();
String Filename_tmp = int_pl.getStringExtra("FileName");
Filename = Filename_tmp;
Toast.makeText(this, Filename, Toast.LENGTH_SHORT).show();
ArrayList<Integer> ptime_tmp = (ArrayList<Integer>)int_pl.getSerializableExtra("pointlist");
mptime = ptime_tmp;
// 처음, 마지막초 저장 X
for(int i = 1; mptime.size()-2 > i; i++ ){
mtmp_plist = new MyTime(String.format("%2d. %s", i, SetTime.set_time(mptime.get(i)/1000)));
mplist.add(mtmp_plist);
}
MyAdapter = new MyListAdapter(this, R.layout.plist_context, mplist);
ListView list = (ListView)findViewById(R.id.plist_ListView);
list.setAdapter(MyAdapter);
list.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
}
//리스트 뷰에 출력할 항목
class MyTime {
MyTime(String aTime) {
Time = aTime;
}
String Time;
}
class MyTime {
MyTime(String aTime) {
Time = aTime;
}
String Time;
}
//어댑터 클래스
class MyListAdapter extends BaseAdapter {
Context maincon;
LayoutInflater Inflater;
ArrayList<MyTime> arSrc;
int layout;
class MyListAdapter extends BaseAdapter {
Context maincon;
LayoutInflater Inflater;
ArrayList<MyTime> arSrc;
int layout;
public MyListAdapter(Context context, int alayout, ArrayList<MyTime> aarSrc) {
maincon = context;
Inflater = (LayoutInflater)context.getSystemService(
Context.LAYOUT_INFLATER_SERVICE);
arSrc = aarSrc;
layout = alayout;
}
maincon = context;
Inflater = (LayoutInflater)context.getSystemService(
Context.LAYOUT_INFLATER_SERVICE);
arSrc = aarSrc;
layout = alayout;
}
public int getCount() {
return arSrc.size();
}
return arSrc.size();
}
public String getItem(int position) {
return arSrc.get(position).Time;
}
return arSrc.get(position).Time;
}
public long getItemId(int position) {
return position;
}
return position;
}
// 각 항목의 뷰 생성
public View getView(int position, View convertView, ViewGroup parent) {
final int pos = position;
if (convertView == null) {
convertView = Inflater.inflate(layout, parent, false);
}
public View getView(int position, View convertView, ViewGroup parent) {
final int pos = position;
if (convertView == null) {
convertView = Inflater.inflate(layout, parent, false);
}
TextView txt = (TextView)convertView.findViewById(R.id.plist_text);
txt.setText(arSrc.get(position).Time);
//Move 버튼 이벤트
Button Move = (Button)convertView.findViewById(R.id.plist_Move);
Move.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
Intent int_pl = getIntent();
int_pl.putExtra("pointlist", mptime);
int_pl.putExtra("moveindex", pos + 1);
setResult(RESULT_OK, int_pl);
txt.setText(arSrc.get(position).Time);
//Move 버튼 이벤트
Button Move = (Button)convertView.findViewById(R.id.plist_Move);
Move.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
Intent int_pl = getIntent();
int_pl.putExtra("pointlist", mptime);
int_pl.putExtra("moveindex", pos + 1);
setResult(RESULT_OK, int_pl);
finish();
}
});
//Del 버튼 이벤트
Button Del = (Button)convertView.findViewById(R.id.plist_Del);
Del.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
mptime.remove(pos + 1);
mplist.clear();
for(int i = 1; i < mptime.size()-2 ; i++ ){ // 처음, 마지막초 저장 X
mtmp_plist = new MyTime(String.format("%2d. %s", i, SetTime.set_time(mptime.get(i)/1000)));
mplist.add(mtmp_plist);
}
MyAdapter.notifyDataSetChanged();
Toast.makeText(PList.this, pos +"", Toast.LENGTH_SHORT).show();
}
});
return convertView;
}
}
@SuppressWarnings("null")
public void mOnClick(View v){
SQLiteDatabase db;
ContentValues row = null;
switch (v.getId()){
case R.id.plist_close:
Intent int_pl = getIntent();
int_pl.putExtra("pointlist", mptime);
setResult(RESULT_OK, int_pl);
finish();
break;
case R.id.del_alplist:
mptime.clear();
mplist.clear();
MyAdapter.notifyDataSetChanged();
break;
case R.id.save_plist:
db = mPlistHelper.getWritableDatabase();
for(int i =0; i < mptime.size(); i++){
row.put("data", mptime.get(i).toString());
db.insert(Filename, null, row);
//db.execSQL("INSERT INTO " + Filename + " VALUES (null, '");
}
//db.insert(Filename, null, row);
mPlistHelper.close();
break;
case R.id.load_plist:
db = mPlistHelper.getReadableDatabase();
db = mPlistHelper.getReadableDatabase();
Cursor cursor = null;
int i = 0;
cursor = db.rawQuery("SELECT data FROM " + Filename , null);
while(cursor.getInt(i) != -1){
mptime.add(cursor.getInt(i));
i++;
}
cursor.close();
mPlistHelper.close();
break;
}
}
class PlistHelper extends SQLiteOpenHelper
{
public PlistHelper(Context context){
super(context, "Point.db", null, 1);
}
public void onCreate(SQLiteDatabase db)
{
db.execSQL("CREATE TABLE " + Filename + " ( _id INTEGER PRIMARY KEY AUTOINCREMENT," + "data INTEGER);");
}
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
{
db.execSQL("DROP TABLE IF EXISTS " + Filename);
onCreate(db);
}
}
}
}
});
//Del 버튼 이벤트
Button Del = (Button)convertView.findViewById(R.id.plist_Del);
Del.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
mptime.remove(pos + 1);
mplist.clear();
for(int i = 1; i < mptime.size()-2 ; i++ ){ // 처음, 마지막초 저장 X
mtmp_plist = new MyTime(String.format("%2d. %s", i, SetTime.set_time(mptime.get(i)/1000)));
mplist.add(mtmp_plist);
}
MyAdapter.notifyDataSetChanged();
Toast.makeText(PList.this, pos +"", Toast.LENGTH_SHORT).show();
}
});
return convertView;
}
}
@SuppressWarnings("null")
public void mOnClick(View v){
SQLiteDatabase db;
ContentValues row = null;
switch (v.getId()){
case R.id.plist_close:
Intent int_pl = getIntent();
int_pl.putExtra("pointlist", mptime);
setResult(RESULT_OK, int_pl);
finish();
break;
case R.id.del_alplist:
mptime.clear();
mplist.clear();
MyAdapter.notifyDataSetChanged();
break;
case R.id.save_plist:
db = mPlistHelper.getWritableDatabase();
for(int i =0; i < mptime.size(); i++){
row.put("data", mptime.get(i).toString());
db.insert(Filename, null, row);
//db.execSQL("INSERT INTO " + Filename + " VALUES (null, '");
}
//db.insert(Filename, null, row);
mPlistHelper.close();
break;
case R.id.load_plist:
db = mPlistHelper.getReadableDatabase();
db = mPlistHelper.getReadableDatabase();
Cursor cursor = null;
int i = 0;
cursor = db.rawQuery("SELECT data FROM " + Filename , null);
while(cursor.getInt(i) != -1){
mptime.add(cursor.getInt(i));
i++;
}
cursor.close();
mPlistHelper.close();
break;
}
}
class PlistHelper extends SQLiteOpenHelper
{
public PlistHelper(Context context){
super(context, "Point.db", null, 1);
}
public void onCreate(SQLiteDatabase db)
{
db.execSQL("CREATE TABLE " + Filename + " ( _id INTEGER PRIMARY KEY AUTOINCREMENT," + "data INTEGER);");
}
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
{
db.execSQL("DROP TABLE IF EXISTS " + Filename);
onCreate(db);
}
}
}
오늘 하루동안 열심히공부하여 나름 코딩해봤습니다..
문제는 db = mPlistHelper.getWritableDatabase();
부분부터 오류가 나네요 ㅡ.ㅡ...
Arraylist(Integer)를 저장하려고 합니다.
각 리스트마다 변수는 40~60개로 임의적입니다.
아래 질문을 올렸었는데..
나름 이것저것 알아보고 구상했습니다.
filename으로 Table을 여러게 만들고 각 테이블은 1행 40 ~ 60개의 열을 갖게
하려고했는데.. 어디가 문법적으로 오류인건지 모르겠습니다.
도와주세요 ㅎ
아 그런데 table이름에 '.'마침표가 들어가도 되는지도 궁금합니다.ㅎ