Я все еще пытаюсь реализовать функцию поиска в своем приложении для Android. Пока все идет хорошо, хотя в настоящее время поиск может запрашивать только одну таблицу и отображать результаты для этой таблицы (это ListView с использованием SimpleCursorAdapter).
Я хочу иметь возможность поиска по нескольким таблицам, но я не уверен, как собрать все это в один курсор или расширить SimpleCursorAdapter для реализации нескольких курсоров. Я вижу, что есть класс с именем CursorJoiner, но я не уверен, что мне нужно с ним делать.
Спасибо!
Я пытался создать специальный курсор [], но он ничего не возвращает, и мои результаты поиска пустые - кто-нибудь может помочь?
public class SearchCursorAdapter extends SimpleCursorAdapter {
private int currentCursor;
private int curPosition = 0;
private int total = 0;
private Cursor[] curs = null;
private Context cont;
public SearchCursorAdapter(Context context, int layout, Cursor c,
String[] from, int[] to) {
super(context, layout, c, from, to);
total = c.getCount();
}
public SearchCursorAdapter(Context context, int layout, Cursor[] c,
String[] from, int[] to) {
super(context, layout, null, from, to);
int l = c.length;
for (int i = 0; i < l; i++) {
total += c[i].getCount();
}
curs = c;
currentCursor = 0;
cont = context;
}
@Override
public View getView(int position, View view, ViewGroup parent) {
if (currentCursor == curs.length)
return null;
if (curs == null) {
//normal shiz
}
else {
Cursor c = curs[currentCursor];
c.moveToPosition(curPosition);
if (c.isAfterLast()) {
currentCursor++;
c = curs[currentCursor];
curPosition = 0;
c.moveToPosition(curPosition);
}
if (view == null) {
LayoutInflater vi = (LayoutInflater)parent.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = vi.inflate(R.layout.search_row, null);
}
TextView t1 = (TextView)view.findViewById(R.id.rowitem_text1);
TextView t2 = (TextView)view.findViewById(R.id.rowitem_text2);
t1.setText(c.getString(1));
t2.setText("Testing");
curPosition++;
}
return view;
только что заметил, что на самом деле адаптер не возвращает ничего, что-то не так с моей поисковой активностью ...