【问题标题】:Android, java: enter search query in activityAndroid,java:在活动中输入搜索查询
【发布时间】:2014-09-01 08:28:13
【问题描述】:

我希望用户在 mainactivity 中键入搜索查询,然后我将保存此查询并在另一个活动中进行搜索(可搜索)。但是现在我只有当一个项目“search”按下另一个活动并且用户在 searchdialog 中输入查询时的代码。我应该如何在我的主要活动中输入并打开搜索对话框,然后在输入后转到可搜索活动?这是一个现有的代码:

AndroidManifest.xml:

       <activity
        android:name=".MainActivity"
        android:screenOrientation="sensor" >
        <intent-filter
            android:clearTaskOnLaunch="true"
            android:label="@string/app_name"
            android:stateNotNeeded="true" >
            <action android:name="android.intent.action.VIEW" />

            <category android:name="android.intent.category.DEFAULT" />

            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    <activity
        android:name="Searchable"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.SEARCH" />
        </intent-filter>
        <meta-data
            android:name="android.app.searchable"
            android:resource="@xml/searchable" />
    </activity>

MainActivity.java:

public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
    case R.id.search:
        choise = 0;
        onSearchRequested();
        Toast.makeText(this, item.getTitle(), Toast.LENGTH_SHORT).show();
        Intent intent_search = new Intent(this, Searchable.class);
        startActivity(intent_search);
        return true;
...

可搜索的.java:

 if (Intent.ACTION_SEARCH.equals(intent.getAction())) { 
        String query1 = intent.getStringExtra(SearchManager.QUERY);
        ...

【问题讨论】:

    标签: java android search android-activity


    【解决方案1】:

    可以使用 queryTextListener 的 OnQueryTextChange 方法。

    SearchView.OnQueryTextListener queryTextListener = new SearchView.OnQueryTextListener() {
            @Override
            public boolean onQueryTextChange(String newText) {
                // this is your adapter that will be filtered
                return true;
            }
            @Override
            public boolean onQueryTextSubmit(String query) {
    
            }
        };
    

    【讨论】:

      猜你喜欢
      • 2011-06-15
      • 1970-01-01
      • 2016-07-25
      • 2011-07-02
      • 1970-01-01
      • 2012-03-04
      • 1970-01-01
      • 1970-01-01
      • 2013-05-24
      相关资源
      最近更新 更多