我想要实现的目标应该与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
,但这是不可能的。
答案 0 :(得分:0)
这是一个使用Fragments的地方。您将所有逻辑/重复代码放在片段中。然后,您可以在任何您想要的Activity中使用此Fragment类。
http://developer.android.com/guide/components/fragments.html
此外,editThisNote()是一个类方法,因此只能从TodayActivity的实例调用。所以你不能从SearchResultsActivity调用它。