2012-05-30 7 views
0

이제 Android 앱에 검색 대화 상자를 구현하는 방법을 알아 냈습니다. 나는 그것을 작동 시키지만, 단지 하나의 컬럼만을 출력한다. 나는 여러 열 (내 경우 3 열)을 검색하는 방법을 생각하지만 이클립스는 틀렸다고 말한다. 여기 내 DBAdapter 클래스의 레코드를 얻기 위해 나의 방법입니다 :Android에서 여러 열 반환 search 대화 상자

//--- GET RECORDS FOR SEARCH 
public Cursor searchDB(String query) { 
String[] allColumns = new String[]{ KEY_COLUMN1, KEY_COLUMN2, KEY_COLUMN3 }; 
return db.query(true, DB_TABLE, new String[] { KEY_ROWID, 
KEY_COLUMN1, KEY_COLUMN2, KEY_COLUMN3 }, KEY_COLUMN1 + " LIKE" + "'%" + query +    "%'", null, null, null, null, null); 
} 
//--- END Get Records for Search 

을 여기에 반환 된 결과를 표시하는 활동의 방법이다 : 지금

//--- Show Results method 
private void showResults(String query) {   
Cursor cursor = DBHelper.searchDB(query); 
startManagingCursor(cursor); 
String[] from = new String[] { DBAdapter.KEY_COLUMN1 }; //--- change this? 
int[] to = new int[] { R.id.text1 }; 
SimpleCursorAdapter records = new SimpleCursorAdapter(this, 
     R.layout.record, cursor, from, to);  
    setListAdapter(records); 
} 
//--- END Show Results method 

을 문자열 [] allcolumns은 아니다 사용되고있다. 나는 내가 DBAdapter 클래스의 showResults 방법에서 'SearchDB() 메소드와 DBAdapter.allcolumns

allcolumns + " LIKE" 

를 수행하여 사용할 거라고 생각했습니다. 그러나 allColumns는 showResults() 메서드에서 옵션으로 제공되지 않습니다. 거래는 뭐니? 검색 대화 상자에서 여러 DB 열을 반환하려면 어떻게합니까?

답변

0

Android SDK의 SearchableDictionary 예제에서 해당 답변을 찾았습니다. Record.xml 파일을 수정하여 반환 할 열이있는 텍스트 뷰 수만큼 Textviews를 수정해야합니다. 또한 showResults() 메서드에서 from 문자열에 다음을 추가하십시오. DBAdapter.KEY_COLUMN1, DBAdapter.KEY_COLUMN2, DBAdapter.KEY_COLUMN3 물론 데이터베이스 호출과 열 이름을 사용하십시오.