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

时间:2014-03-28 21:04:14

标签: android listview searchview

我想要实现的目标应该与Gmail安卓应用的搜索功能类似。

我有'今天'作为包含listview的主要活动。此列表视图包含各种类型的项目,每个项目具有不同的布局。我在listadapter类中的每种类型的listitems上配置了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。我使用了&#39;今天&#39;中使用的相同布局。用于显示搜索结果的活动。现在我希望用户能够在这些列表项上执行类似的操作,这些列表项可以从我的主要活动中完成。

如何重新使用我在&#39;今天&#39;活动? 或者,我只需要在SearchResultsActivity中重写上面的代码并使其正常工作吗?

我试过调用今天&#39;写的方法。来自SearchResultsActivity,但这是不可能的。

1 个答案:

答案 0 :(得分:0)

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

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

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