在我的整个应用程序中,我希望搜索按钮执行单独的操作Activity
。即,当我按下搜索按钮时,从应用程序中的任何位置调用一个单独的活动。
有什么方法可以代替定义onSearchRequested()
在每项活动中,我只是在一个地方配置它(例如Manifest.xml
)并且它可以在整个应用程序中使用?
您可以定义一个(不一定)扩展 Activity 的抽象类,在那里实现 onSearchRequest 并从该类继承所有其他 Activity 类。通过这种方式,您只需定义 onSearch 行为一次。
i.e.
public abstract class MyBaseActivity extends Activity {
@Override
public void onSearchRequest() {
// Your stuff here
}
}
public class MyActivity1 extends MyBaseActivity {
// OnSearchRequest is already implemented
}
如果您计划使用 Activity 的多个子类,即 ListActivity,这可能不是一个好的解决方案,因为您必须为您使用的所有 Activity 子类创建一个抽象基类。在这种情况下,我建议创建一个额外的类,封装搜索按钮处理代码并从您的 onSearchRequest 活动中调用它,即
public class SearchButtonHandle {
public void handleSearch(Context c) {
// Your search btn handling code goes here
}
}
public class MyActivity1 extends Activity { // Or ListActivity ....
@Override
public void onSearchRequest() {
new SearchButtonHandle().handleSearch(this);
}
}
当然,您也可以通过定义您使用的所有 Activity 子类的抽象子类来组合这两种方法,并使用外部搜索处理程序实现 onSearchRequest,如上面的示例所示
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)