2014-09-04 3 views
0

SQLite에서 모든 데이터를 가져 오려고 시도 중입니다. Query LIKE 문을 사용합니다. 그러나 나는 그것을 얻는 방법을 모른다.SQLite 홈 검색에서 모든 데이터 가져 오기

필터링을하지 않고 모든 데이터를 가져 오는 데 사용하는 Query을 수정하려고합니다. 이미이 문제를 검색하려고 시도하지만 여전히 이해하지 못합니다.

는 여기에 내가 DATABASE의 데이터를 검색하는 의도에서 문자열을 사용하려면 내 Search.java

Intent search = getIntent(); 
    String searchResult = search.getStringExtra("TAG_SEARCH"); 
    DatabaseHandler db = new DatabaseHandler(this); 

    /** 
    * CRUD Operations 
    * */ 
    Log.d("Reading: ", "Reading all contacts.."); 
    List <AllItem> allItems = new ArrayList<AllItem>(); 

    allItems = db.getAllSearchResult(); 

    ArrayList <String> allItems2 = new ArrayList<String>(); 

    for (AllItem cn : allItems) { 
     allItems2.add(cn.getItem_name()); 
     allItems2.add(cn.getAreaNAme()); 
     allItems2.add(cn.getPriceCategory()); 
     allItems2.add(cn.getImageCount()); 
     allItems2.add(cn.getID()); 
     allItems2.add(cn.getCategory_name()); 
     allItems2.add(cn.getKids()); 
     allItems2.add(cn.getFreeTextForKids()); 
     allItems2.add(cn.getDescription()); 
     allItems2.add(cn.getPromotion()); 
     allItems2.add(cn.getPromotionFreeText()); 
     allItems2.add(cn.getPromotionStartDate() + " - "); 
     allItems2.add(cn.getPromotionEndDate()); 
     allItems2.add(cn.getYoutube()); 
     allItems2.add(cn.getYoutubeLink()); 
     allItems2.add(cn.getPhone()); 
     allItems2.add(cn.getMobilePhone()); 
     allItems2.add(cn.getReview()); 
     allItems2.add(cn.getAddress()); 
     allItems2.add(cn.getLatitude()); 
     allItems2.add(cn.getLongitude()); 
     allItems2.add(cn.getOpenDetail()); 
     allItems2.add(cn.getFacebook()); 
     allItems2.add(cn.getTwitter()); 
     allItems2.add(cn.getInstagram()); 
     allItems2.add(cn.getWebsite()); 
    } 


    CustomAdapterAccommodation adapter = new CustomAdapterAccommodation(Search.this, allItems2); 
    listview.setAdapter(adapter); 


} 

입니다.

이 내 DatabaseHandler.java

// Getting All search result 
public List<AllItem> getAllSearchResult() { 
    List<AllItem> allsearchResultList = new ArrayList<AllItem>(); 
    // Select All Query 
    String selectQuery = "SELECT * FROM " + TABLE_ALLITEM; 

    // If i try change like this its show nothing 
    // String selectQuery = "SELECT * FROM " + TABLE_ALLITEM + " WHERE " + KEY_ITEM_NAME_ALLITEM + " = '%a%'"; 


    Log.d("Query search", selectQuery); 
    SQLiteDatabase db = this.getWritableDatabase(); 
    Cursor cursor = db.rawQuery(selectQuery, null); 

    // looping through all rows and adding to list 
    if (cursor.moveToFirst()) { 
     do { 
      AllItem allitem = new AllItem(); 
      allitem.setTableID(cursor.getInt(0)); 
      allitem.setID(cursor.getString(1)); 
      allitem.setCategory_name(cursor.getString(2)); 
      allitem.setItem_Name(cursor.getString(3)); 

      allitem.setDescription(cursor.getString(4)); 
      allitem.setAddress(cursor.getString(5)); 
      allitem.setArea (cursor.getString(6)); 
      allitem.setAreaName (cursor.getString(7)); 

      allitem.setLongitude (cursor.getString(8)); 
      allitem.setLatitude (cursor.getString(9)); 

      allitem.setOpenDetail (cursor.getString(10)); 

      allitem.setKids (cursor.getString(11)); 
      allitem.setFreeTextForKids (cursor.getString(12)); 

      allitem.setCuisineID (cursor.getString(13)); 
      allitem.setCuisineName (cursor.getString(14)); 
      allitem.setCuisineUniqueCode (cursor.getString(15)); 

      allitem.setBarTypeID (cursor.getString(16)); 
      allitem.setBarTypeName (cursor.getString(17)); 
      allitem.setBarTypeCode (cursor.getString(18)); 

      allitem.setRoomTypeID (cursor.getString(19)); 
      allitem.setRoomTypeName (cursor.getString(20)); 
      allitem.setRoomTypeCode (cursor.getString(21)); 

      allitem.setWellnessTypeID (cursor.getString(22)); 
      allitem.setWellnessTypeName (cursor.getString(23)); 
      allitem.setWellnessTypeCode (cursor.getString(24)); 

      allitem.setAttractionsTypeID (cursor.getString(25)); 
      allitem.setAttractionsTypeName (cursor.getString(26)); 
      allitem.setAttractionsTypeCode (cursor.getString(27)); 

      allitem.setShopsTypeID (cursor.getString(28)); 
      allitem.setShopsTypeName (cursor.getString(29)); 
      allitem.setShopsTypeCode (cursor.getString(30)); 

      allitem.setAdventuresTypeID (cursor.getString(31)); 
      allitem.setAdventuresTypeName (cursor.getString(32)); 
      allitem.setAdventuresTypeCode (cursor.getString(33)); 

      allitem.setRomanceTypeID (cursor.getString(34)); 
      allitem.setRomanceTypeName (cursor.getString(35)); 
      allitem.setRomanceTypeCode (cursor.getString(36)); 

      allitem.setGalleriesTypeID (cursor.getString(37)); 
      allitem.setGalleriesTypeName (cursor.getString(38)); 
      allitem.setGalleriesTypeCode (cursor.getString(39)); 

      allitem.setFurnitureTypeID (cursor.getString(40)); 
      allitem.setFurnitureTypeName (cursor.getString(41)); 
      allitem.setFurnitureTypeCode (cursor.getString(42)); 

      allitem.setEventTypeID (cursor.getString(43)); 
      allitem.setEventTypeName (cursor.getString(44)); 
      allitem.setEventTypeCode (cursor.getString(45)); 

      allitem.setPriceCategory (cursor.getString(46)); 

      allitem.setHotelOfficialStarRating (cursor.getString(47)); 

      allitem.setPhone (cursor.getString(48)); 
      allitem.setMobilePhone (cursor.getString(49)); 

      allitem.setReview (cursor.getString(50)); 

      allitem.setPromotion (cursor.getString(51)); 
      allitem.setPromotionFreeText (cursor.getString(52)); 
      allitem.setPromotionStartDate (cursor.getString(53)); 
      allitem.setPromotionEndDate (cursor.getString(54)); 
      allitem.setActive (cursor.getString(55)); 

      allitem.setImageCount (cursor.getString(56)); 

      allitem.setCreatedBy (cursor.getString(57)); 
      allitem.setCreatedDate (cursor.getString(58)); 
      allitem.setUpdatedBy (cursor.getString(59)); 
      allitem.setUpdatedDate (cursor.getString(60)); 

      allitem.setFacebook (cursor.getString(61)); 
      allitem.setTwitter (cursor.getString(62)); 
      allitem.setInstagram (cursor.getString(63)); 
      allitem.setWebsite (cursor.getString(64)); 
      allitem.setYoutube (cursor.getString(65)); 
      allitem.setYoutubeLink (cursor.getString(66)); 

      allitem.setMember (cursor.getString(67)); 
      allitem.setMemberStartDate (cursor.getString(68)); 
      allitem.setMemberEndDate (cursor.getString(69)); 

      allitem.setNew (cursor.getString(70)); 
      allitem.setEventStartDate (cursor.getString(71)); 
      allitem.setEventEndDate (cursor.getString(72)); 


      // Adding food to list 
      allsearchResultList.add(allitem); 
     } while (cursor.moveToNext()); 
    } 

    // return food list 
    return allsearchResultList; 
} 

사람이이 문제를 해결하는 방법에 저를이 도움이 될 수 있습니다? 사용자가 버튼 검색을 누르면 텍스트가 Search 클래스로 전송되고 텍스트는 SQLite에서 모든 데이터를 가져 오는 키입니다. 그런 다음 ListView에 표시하십시오.

답변

0

사용 LIKE하지 =

LIKE 당신이 wildcars을 사용할 수 있습니다 D : 전에

덕분에 %는 _ 여러 문자를 나타내는 하나 개의 문자

String filter = "a";  
String selectQuery = "SELECT * FROM " + TABLE_ALLITEM + " WHERE " + KEY_ITEM_NAME_ALLITEM + " LIKE '%"+filter+"%' "; 
+0

를 나타내는 방법으로 사용자의 입력을 사용하는 방법에 대한 검색의 열쇠가됩니까? – Matthew

+0

필터의 값을 사용자 입력에서 가져온 문자열로 바꿉니다. –

+0

다른 클래스에 있다면 어떨까요? 보시다시피. 데이터베이스 처리기를 검색 클래스로 호출합니다. – Matthew

관련 문제