2016-12-22 2 views
0

enter image description here 를 사용하여 안드로이드에서 이러한 테이블을 SQLiteLog하지, 검색 키워드에 따라 주소 세부 정보 : 는 여기에 우리가 성공적으로 가지고 1 빌드를 들어 내 코드, 우리는 데이터, 즉 읽고있는 자산 폴더를 사용하여 Sqllite 데이터베이스

private SQLiteDatabase db; 
    private Cursor c; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    et_search = (EditText) findViewById(R.id.et_search); 
    img = (ImageView) findViewById(R.id.img_search); 
    list = (ListView) findViewById(R.id.list_search); 

    db = openOrCreateDatabase("sample", Context.MODE_PRIVATE, null); 


    img.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      search_keyword = et_search.getText().toString(); 
      arr_data = new ArrayList<ListItems>(); 
      if (isValid()) { 
       SELECT_SQL = "SELECT ROWID AS _id,* FROM Addresses where Type LIKE '%" + search_keyword + "%'"; 

       Log.d("daatt",SELECT_SQL); 
       try { 
        c = db.rawQuery(SELECT_SQL, null); 
        c.moveToFirst(); 
        showRecords(); 

       } catch (SQLiteException e) { 
        Toast.makeText(getApplicationContext(), "No Data", Toast.LENGTH_LONG).show(); 
       } 

      } 

     } 
    }); 


} 

private void showRecords() { 

     String ugName = c.getString(c.getColumnIndex("Name")); 
     String ugaddress = c.getString(c.getColumnIndex("Address")); 
     String ugtype = c.getString(c.getColumnIndex("Type")); 

     ListItems items = new ListItems(); 

     // Finish reading one raw, now we have to pass them to the POJO 
     items.setName(ugName); 
     items.setAddress(ugaddress); 
     items.setType(ugtype); 

     // Lets pass that POJO to our ArrayList which contains undergraduates as type 
     arr_data.add(items); 
    } 
    ListDataAdapter adapter = new ListDataAdapter(arr_data); 
    list.setAdapter(adapter); 

    if (c != null && !c.isClosed()) { 
     int count = c.getCount(); 
     c.close(); 
    } 

    Log.d("ListData", "" + arr_data); 

} 


private boolean isValid() { 
    if (search_keyword.length() == 0) { 
     Toast.makeText(getApplicationContext(), "please enter valid key word", Toast.LENGTH_LONG).show(); 
     return false; 
    } 
    return true; 
} 

입니다 데이터 목록 어댑터 를 사용하여로드하지만 깨끗한 프로젝트 후, &는 그런 테이블 expection을 보여주는 프로젝트를 다시 빌드

우리가 감사 잘못된

을 사전가는 r에 우리에게 WR를 안내하세요
+1

저에게 들리는 Clean & Build는 데이터베이스를 제거합니다. 데이터베이스를 다시 만들고 있지만 테이블이 없습니다. 그래서 당신이 명령문을 실행할 때, 그와 같은 테이블 예외는 발생하지 않을 것입니다. 데이터베이스가 존재하는지 사전에 점검하고, 존재하는 경우 필요한 테이블이 존재하는지 여부를 확인하십시오. 그렇지 않다면 생성하십시오. –

답변

1

인쇄물에서 볼 수있는 한, 당신이 말하는 테이블은 ListOfAddress입니다. 그렇지 않습니까? 당신의 SQL은 다음과 같습니다

SELECT_SQL이 = ' "" 경우 유형 LIKE + SEARCH_KEYWORD + % "% 주소 * FROM, _id AS 을 ROWID 선택"';

내가 틀렸을 수도 있지만 검색어를 다시 확인합니다.

+0

코드를 다시 변경 한 후 SELECT_SQL = "SELECT ROWID AS _id, * FROM ListOfAddress 여기서 LIKE '%"+ search_keyword + "%'"; –