我没有使用 SearchManager,但我已经建立了自己的自定义搜索活动。我希望在用户单击“搜索”按钮时显示它。我怎样才能做到这一点?
问问题
2278 次
3 回答
0
如果我对您的理解正确,您是在询问如何启动您的搜索活动。为您的按钮创建一个 onClickListener 和一个 EditText 字段供用户输入文本。在您的搜索活动中查询意图以获取用户单击“搜索”按钮时正在搜索的任何内容。
EditText et = new EditText(this);
public void onClick(View v){
String searchText = et.getText();
Intent intent = new Intent(this, com.example.app.SearchActivity.class);
intent.putExtra("searchQuery", searchText);
startActivity(intent);
}
http://developer.android.com/guide/appendix/faq/commontasks.html#opennewscreen
于 2010-09-24T19:51:29.593 回答
0
不确定这是否可行,但您是否尝试过扩展可以捕捉搜索意图的 BroadcastReceiver?检查开发人员参考的意图似乎是“android.search.action.GLOBAL_SEARCH”。因此,您将拥有一个 Receiver 类,例如:
public class MyIntentReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals("android.search.action.GLOBAL_SEARCH")) {
Intent sendIntent = new Intent(context, MySearchActivity.class)
context.startActivity(intent);
}
}
}
在您的清单中,在应用程序标签之间,您应该有
<receiver android:name="MyIntentReceiver">
<intent-filter>
<action android:name="android.search.action.GLOBAL_SEARCH" />
</intent-filter>
</receiver>
于 2010-09-24T20:15:58.960 回答
0
在您自己的应用程序中,您可以通过监视onKeyDown()
AFAIK 来执行此操作。
在其他应用程序中,除非通过自定义固件,否则这是不可能的。
于 2010-09-24T19:57:15.927 回答