如何定义搜索按钮的活动?

时间:2010-09-24 19:27:46

标签: android search android-activity android-searchmanager

我没有使用SearchManager,但我已经构建了自己的自定义搜索活动。我想在用户点击“搜索”按钮时显示此内容。我怎么能这样做?

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

在您自己的应用程序中,您可以通过监视onKeyDown(),AFAIK。

来完成此操作

在其他应用程序中,除了通过自定义固件之外,这是不可能的。

答案 2 :(得分: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>