DB 검색한 후 ResultList 소스는 아래와 같습니다.

그런데 검색 리스트를 클릭하면 다른 인텐트로 이동할려고 합니다.

 

단, DB 모든 열의 4번째 Column(Column id=xml)에 intent 가 등록되어 있습니다.

이것을 꺼내어  연결해 줄려고 하는데 어떻게 해야만 할까요?

 

 /*ListView list = (ListView)findViewById(R.id.ListView01);
        list.setOnItemClickListener(new OnItemClickListener() {
            public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
              long arg3) {
            }
           });*/

 

제대로 만든 것도 아닌데 위와 같은 식으로 하니 널포인트 에러가 막 생기고 있습니다.

 int arg2에서 포지션 값을 가지고 온다고 하는데 그럼 이 포지션을 어떻게 연결시켜야 하는지요.

구체적인 소스로 말씀해 주시면 감사하겠습니다. 원체 초보라...

도움 좀 부탁드릴께요. 삼일째 헤매고 있습니다. ㅠㅠㅠ

 

참고로 DB, 검색화면, 결과화면을 이미지로 첨부하니 참고하세요.

 

=================================================================================

 Search.java : 검색 화면

=================================================================================

public class Search_Area extends Activity implements OnClickListener{
 DBHandler dbHandler;
 EditText edtName;
 
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.about);
       
       
        Button button = (Button)findViewById(R.id.button);     
        button.setOnClickListener(this);             
      
        edtName = (EditText)findViewById(R.id.Text);
        
        ArrayList<String> arArea = new ArrayList<String>();
  arArea.add("경기도");
  arArea.add("강원도");
  ...................................  
   ArrayAdapter<String> Adapter;
  Adapter = new ArrayAdapter<String>(this,
    android.R.layout.simple_list_item_1, arArea);
  
  ListView list = (ListView)findViewById(R.id.list);
  list.setAdapter(Adapter);
  

    list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
       @Override
       public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        switch(position) {
        case 0:
         Intent a= new Intent(Search_Area.this, kg.class);
                       startActivity(a);
                       break;
        case 1:
      Intent b= new Intent(Search_Area.this, kw.class);
                    startActivity(b);
                    break;
        case 2:
      Intent c= new Intent(Search_Area.this, cc.class);
                 startActivity(c);
                 break;
        case 3:
      Intent d= new Intent(Search_Area.this, ccn.class);
                 startActivity(d);
                 break;                 

      ..............................

              }
       }
      });                
    }
   
    public void onClick(View v) {
     try {
   dbHandler = DBHandler.open(this);
   
   if(v.getId() == R.id.button){
    Intent intent = new Intent(this, ResultList.class);
    intent.putExtra("command", "selectname");
    intent.putExtra("name", edtName.getText().toString());
    startActivity(intent);   
    }
               
   dbHandler.close();
  } catch (Exception e) {
   Log.i("disp", "err : " + e);
  }
    }
}

=================================================================================

ResultList.java : 결과 화면

=================================================================================

public class ResultList extends ListActivity{
 DBHandler dbHandler;
 
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  
  dbHandler = DBHandler.open(this);
  Intent intent = getIntent();
  String command = (String)intent.getExtras().get("command");
  Cursor cursor = null;
  
  if(command.equals("selectname")){
   String name = (String)intent.getExtras().get("name");
   cursor = dbHandler.selectName(name);
  }
  
  String[] arr = new String[cursor.getCount()];
     int count = 0;
  while(cursor.moveToNext()){
   int id = cursor.getInt(0);   
   String state = cursor.getString(1);
   String city = cursor.getString(2);
   String food = cursor.getString(3);   
   arr[count] = id + "   " + state + " : " + city + " : " + food;
   count++;
  }
  cursor.close();
  dbHandler.close();
  
  ListAdapter adapter = new ArrayAdapter<String>(this,
    android.R.layout.simple_list_item_1, arr);
  setListAdapter(adapter);
    
        /*ListView list = (ListView)findViewById(R.id.ListView01);
        list.setOnItemClickListener(new OnItemClickListener() {
            public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
              long arg3) {
            }
           });*/
   }
}

 

=================================================================================

DBHelper.java

=================================================================================

public class DBHelper extends SQLiteOpenHelper{
 private static final String DB_NAME = "food.sqlite";
 private static final int DB_VER = 1;
 
 public DBHelper(Context context) {
  super(context, DB_NAME, null, DB_VER);
 }
 
 @Override
 public void onCreate(SQLiteDatabase db) {
   }
 
 @Override
 public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
  db.execSQL("drop table if exist SFOOD");
  onCreate(db);
 }
}

 

=================================================================================

DBHandler.java

=================================================================================

public class DBHandler { 

 private Context ctx;
 private DBHelper helper;
 private SQLiteDatabase db;
 
 public DBHandler(Context ctx) {
  this.ctx = ctx;
  helper = new DBHelper(ctx);
  db = helper.getWritableDatabase();  }
 public static DBHandler open(Context ctx) throws SQLException{
  DBHandler handler = new DBHandler(ctx);
  return handler;
 }
 
 public void close(){
  helper.close();
 }
 
 public Cursor selectName(String food){
  String sql="select * from SFOOD where food like ?";
  Cursor cursor = db.rawQuery(sql, new String[]{food + "%"});
  return cursor;
 }
}