1

SQLite FULL TEXT SEARCH를 사용하여 검색 기능을 구현하고 있습니다. Google 검색과 같이 대담한 검색어 텍스트로 검색 결과를 표시하고 싶습니다. 아래 코드와 같은 코드를 구현했습니다. 그러나 은 커서 어댑터에 대한 바인딩 뷰 및 TextView의 텍스트 서식 설정을 통해 HTML 형식이없는 일반 텍스트를으로 표시합니다. 나는 코드에서 내가 어디 있는지 잘못 알 수 없다. 어떤 도움주세요! 되어SQLite 스 니핏 함수 구현은 텍스트를 TextView에서 HTML로 포맷하지 않습니다.

public Cursor searchText(String inputText) throws SQLException 
{ 
    Log.w(TAG, inputText); 
    String query = "SELECT "+ 
    "docid as _id," + 
    KEY_NAME + "," + 
    KEY_INDEX + "," + 
    KEY_TEXT_en + "," + 
    KEY_TEXT_ur + "," + 
    KEY_TRANS_ur + "," + 
    "hex(matchinfo("+FTS_VIRTUAL_TABLE+")) AS "+KEY_OCCURRENCES+"," + 
    "snippet("+FTS_VIRTUAL_TABLE+",'<b>','</b>')" + 
    " from " + FTS_VIRTUAL_TABLE + 
    " where ("+ FTS_VIRTUAL_TABLE +") MATCH '" + "\""+"*"+inputText+"\"*"+" ';"; 

    Log.w(TAG, query); 
    Cursor mCursor = mDb.rawQuery(query,null); 

    if (mCursor != null) 
    { 

     mCursor.moveToFirst(); 
    } 
    return mCursor; 

} 

그리고 내 쇼의 결과는 활동 클래스에서 사용자에게 결과를 표시하는 기능 : 다음 때문에

public void showResults(String query) 
{ 

    Cursor cursor = mDbHelper.searchText((query != null ? query.toString() : "@@@@")); 

    if (cursor == null) 
    { 
    } 
    else 
    { 
     // Specify the columns we want to display in the result 
     String[] from = new String[] 
       { 
        DbAdapter.KEY_TEXT_en, 
        DbAdapter.KEY_INDEX, 
        DbAdapter.KEY_NAME, 
       }; 
     // Specify the Corresponding layout elements where we want the columns to go 
     int[] to = new int[] 
       { 
        R.id.TextEnTv, 
        R.id.IndexTv, 
        R.id.NameTv 
       }; 
final SimpleCursorAdapter cursorAdapter = new simpleCursorAdapter(this,R.layout.search_results, cursor, from, to); 
     cursorAdapter.setViewBinder(new SimpleCursorAdapter.ViewBinder() { 
      public boolean setViewValue(View view,Cursor cursor, int columnIndex) { 
        if (columnIndex == cursor.getColumnIndex(DbAdapter.KEY_TEXT_en)) { 

         TextView myView = (TextView) findViewById(R.id.TextEnTv); 
         myView.setText(Html.fromHtml(cursor.getString(cursor.getColumnIndex(DbAdapter.KEY_TEXT_en)))); 

         return(true); 
         } 

         return(false); 
        } 
        }); 
     mListView.setAdapter(cursorAdapter); 

답변

0

텍스트보기가 표시되지 않은 텍스트

DatabaseAdapter 클래스에서 내 검색 기능입니다 코드는 형식이 지정되지 않은 텍스트 인 KEY_TEXT_en 열의 내용을 표시합니다.

는 미리보기 기능의 결과를 표시에 이름 부여하려면 :

SELECT ... snippet(...) AS snippet ... 

을 텍스트보기에 대해 해당 열을 사용합니다.