로그 내용을 보니까 대충 NullPointerException이 발생하더군요
다른분들 예제랑 강의 참조해서 작성한건데 이상하네요 ㅜ.ㅜ
대략적인 프로그램 로직은
1. 에디트박스가 빈칸 >> 검색클릭 >> 디비로부터 모든정보를 받아와서 ArrayList에 추가후 ListView로 읽어온 정보들 출력
2. 에디트박스가 빈칸이 아니라면 >>검색클릭 >>디비로부터 해당정보만 받아와서 ArrayList에 추가후 ListView로 읽어온 정보들 출력
입니다.
도대체 어디가 문제일까요? ㅜ.ㅜ
package com.Nutrition;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.ArrayList;
import android.app.Activity;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import com.Forgo3.R;
public class Search extends Activity {
private static final String DATABASE_NAME = "Forgo3.sqlite";
private static final String SEARCH = "SELECT * FROM calorie WHERE food LIKE ?";
private static final String SEARCHEMPTY = "SELECT * FROM calorie";
private EditText et;
private SQLiteDatabase db;
private Cursor c;
private String result1 = "";
private String input[] = new String[1];
private ArrayList<String> al ;
private ArrayAdapter<String> ad;
private ListView lv;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.search);
search();
exit();
}
public void exit(){
Button b = (Button)findViewById(R.id.searchback);
b.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
finish();
}
});
}
public void search(){
Button b = (Button)findViewById(R.id.searchfood);
b.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
et = (EditText)findViewById(R.id.foodinput);
result1 ="";
db = openOrCreateDatabase(DATABASE_NAME, SQLiteDatabase.CREATE_IF_NECESSARY, null);
input[0] = "%"+et.getText().toString()+"%";
if(et.getText().toString().equals("")){
al = new ArrayList<String>();
// al.clear();
c = db.rawQuery(SEARCHEMPTY, null);
if ( c != null )
{
if ( c.moveToFirst() )
{
for(int i =0; i < c.getColumnCount(); i++){
result1 = c.getColumnName(i)+ "|";
al.add(result1);
}
do{
result1 = "";
for(int i = 0 ; i < c.getColumnCount() ; i++ )
{
result1 = c.getString(i) + " | ";
al.add(result1);
}
}while(c.moveToNext());
}
}
c.close();
}
else
{
c = db.rawQuery(SEARCH, input);
al = new ArrayList<String>();
// al.clear();
if ( c != null )
{
if ( c.moveToFirst() )
{
for(int i =0; i < c.getColumnCount(); i++){
result1 = c.getColumnName(i)+ "|";
al.add(result1);
}
do{
result1 = "";
for(int i = 0 ; i < c.getColumnCount() ; i++ )
{
result1 = c.getString(i) + " | ";
al.add(result1);
}
}while(c.moveToNext());
}
}
c.close();
}
}
});
setArray();
}
public void setArray(){
ad = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, al);
ad.notifyDataSetChanged();
lv = (ListView)findViewById(R.id.searchlist);
lv.setAdapter(ad);
}
}