如何在活动中显示搜索结果



我想要实现的应该是类似于Gmail android应用程序的搜索功能。

我有'Today'作为我的主要活动,它包含一个列表视图。这个列表视图包含各种类型的项目,每个项目都有不同的布局。我已经在listadapter类中的每种类型的列表上配置了OnClicklisteners和OnLongClickListeners。这些监听器调用的方法写在"今日"活动课中。例如,以下方法EditThisNote在点击时被调用。

public void EditThisNote(View v) {
    int noteId = Integer.valueOf(textView.getTag().toString());
    Note noteObject = dbHelper.getNoteObjectFor(noteId);
    new NoteEditor().execute(noteObject);
}
private class NoteEditor extends AsyncTask<Note, Void, Void> {
    @Override
    protected Void doInBackground(Note... notes) {
        Intent intent = new Intent(Today.this, EditNote.class);
        intent.putExtra(ApplicationConstants.NOTE_OBJECT, notes[0]);
        startActivity(intent);
        return null;
    }
    protected void onPostExecute() {
    }
}

我已经使用SearchView小部件配置了搜索功能。我在一个名为SearchResultsActivity的单独活动中将这个搜索查询的结果显示为ListView。我使用了与"今日"活动相同的布局来显示搜索结果。现在我希望用户能够在这些列表项上做类似的事情,他能够从我的主要活动中做。

我如何重用我在"今天"活动中所做的设置?或者我应该在SearchResultsActivity中重写上面的代码并使其工作吗?

我试着从SearchResultsActivity调用写在"今天"的方法,但这是不可能的。

这是使用Fragments的地方。你把所有的逻辑/重复代码放在一个Fragment中。然后你可以在任何你想要的Activity中使用这个Fragment类。

http://developer.android.com/guide/components/fragments.html

另外,editThisNote()是一个类方法,所以只能从TodayActivity的实例中调用。所以你不能从SearchResultsActivity中调用它

最新更新