Android - Jak wyłączyć przycisk wyszukiwania, jak zaimplementować onSearchRequested ()?

Sprawdziłem następujące:Jak kliknąć przycisk wyszukiwania telefonu, aby nic nie robić?

Ale to nie działa dla mnie. Ktoś ma jakieś inne sugestie? Dziękuję Ci. Podążając za sugestią Phila aktualizując kod zgodnie z jego odpowiedzią. Pokazuje błądhttp://www.youtube.com/watch?v=9lekcH1JAf0&feature=youtu.be

Zrobiłem więc przykładowy projekt. Przetestowałem to na dwóch różnych telefonach, Android w wersji 2.3.5 i 4.1, przetestowałem to również na emulatorze w wersji 2.2. Po kliknięciu okna dialogowego pokazywania przycisków wyświetlane jest okno dialogowe postępu, które powinno być kontynuowane. Ale kliknięcie przycisku Szukaj na telefonach i emulatorze powoduje zniknięcie okna postępu. Oto klasa i manifest następuje.

Obecne zachowanie polega na tym, że po kliknięciu przycisku wyszukiwania znika okno dialogowe postępu. Oczekiwane lub potrzebne zachowanie polega na wyłączeniu przycisku wyszukiwania lub podobnie, gdy okno dialogowe jest wyświetlane i kliknięciu przycisku wyszukiwania, to kliknięcie nie powoduje zniknięcia okna dialogowego.

    package com.example.test6;

import android.os.Bundle;
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Context;
import android.util.Log;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class MainActivity extends Activity {

    Button showDialogButton;
    Context context;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        showDialogButton = (Button) findViewById(R.id.showDialogButton);
        showDialogButton.setOnClickListener(showDialog);
        context = this;
        startSearch(null, false, null, false);
    }

    private OnClickListener showDialog = new OnClickListener() {

        @Override
        public void onClick(View v) {
            ProgressDialog progressDialog = new ProgressDialog(context);
            progressDialog.show();
        }
    };

    @Override
    public boolean onSearchRequested() {
       Log.d("onSearchRequested", "search key pressed");
       return false;
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }
}

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.test6"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="1"
        android:targetSdkVersion="15" />

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:label="Test6" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        <intent-filter>
            <action android:name="android.intent.action.SEARCH" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
        <meta-data
            android:name="android.app.searchable"
            android:resource="@xml/searchable" />
        </activity>
    </application>

</manifest>

Mój xml z możliwością wyszukiwania znajduje się pod adresem: res / xml / searchable.xml zgodnie z podanym odnośnikiem. Oto jak wygląda mój plik searchable.xml:

<?xml version="1.0" encoding="utf-8"?>
<searchable xmlns:android="http://schemas.android.com/apk/res/android"
    android:searchSuggestAuthority="dictionary"
    android:searchSuggestIntentAction="android.intent.action.VIEW"
    android:includeInGlobalSearch="true">
</searchable>

questionAnswers(4)

yourAnswerToTheQuestion