Gooday Note Scrap Source Android login
 
작성일 : 11-04-10 17:37
Example Source
 글쓴이 : 기리
조회 : 6,042   추천 : 0   비추천 : 0  
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Locale;

import android.app.ListActivity;

import android.os.Bundle;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.content.ContentValues;


public class matzip extends ListActivity {

private ArrayList<String> list;
private ArrayAdapter<String> adapter;
private EditText inputLocale;
private EditText inputFood;
private Button inputSearchM;

private static final String DEBUG_TAG = "FullDatabase Log";

private static final String DATABASE_NAME = "mat.db";
private static final String CREATE_TABLE = 
"CREATE TABLE test (id INTEGER PRIMARY KEY AUTOINCREMENT ,  " +
"       name TEXT, subname TEXT, locale TEXT, sublocale TEXT, locale_x INTEGER, locale_y INTEGER, star INTEGER        ); " ;
/*
private static final String DROP_TABLE = "DROP TABLE mat;";
private static final String sel_mat_OUT = "SELECT name, subname, sublocale, star FROM mat;";
*/
SQLiteDatabase mDatabase;

/** Called when the activity is first created. **/
@Override

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
if (Arrays.binarySearch(databaseList(), DATABASE_NAME) >= 0) {
deleteDatabase(DATABASE_NAME);
}
inputLocale = (EditText)findViewById(R.id.Locale);
inputFood = (EditText)findViewById(R.id.Food);
inputSearchM = (Button)findViewById(R.id.SearchM);
list = new ArrayList<String>();
dbcreate();
inputSearchM.setOnClickListener(new OnClickListener(){
public void onClick(View v) {
dbms();
}

});

adapter = new ArrayAdapter<String>(this, 
android.R.layout.simple_list_item_1, list);

setListAdapter(adapter);
}

public void dbms(){
// 지역과 장소이름에 입력된 문자들을 String으로 가져오기.
String strLocale = inputLocale.getText().toString();
String strFood = inputFood.getText().toString();

// 출력 SQL 쿼리.
String[] columns={"name", "subname", "locale", "sublocale", "star"}; // 반환받을 컬럼들
String[] param={strLocale}; // 인자
// 커서 생성.
Cursor result; // <- 여기까지 문제 없음.
result = mDatabase.query("mat", columns, "locale=?", param, null, null, null); // <- 이부분에서 충돌이 남. 이유를 모르겠음.
try{
// 결과값의 갯수 세기
int resultcount = result.getCount();
// 결과값이 없으면 위치 부분에 해당 문장이 입력됨.
// 아닐경우 Working.
if(resultcount == 0){
inputLocale.setText("Data is Nothing.");
}
else{
int count = 0;
String []resultset = new String [resultcount];
String [][]resultset2 = new String [resultcount][4];
result.moveToFirst();
while(!result.isAfterLast()){
resultset[count] = result.getString(0);
list.add(resultset[count]);
adapter.notifyDataSetChanged();
resultset2[count][0] = result.getString(0);
resultset2[count][1] = result.getString(1);
resultset2[count][2] = result.getString(2);
resultset2[count][3] = result.getString(3);
count++;
result.moveToNext();      
}
}
// 커서를 닫아줌.
result.close();
}catch(Exception e){
inputFood.setText("대실패");

}
}
}




실제로 동작되는 2 덩이만 적었습니다.
표시한 부분에서 에러가 아니라 충돌이 나버립니다..;