controllato il seguente: How to have clicking the phone's search button do nothing?Android - Come disabilitare il pulsante Cerca, come implementare onSearchRequested()?
Ma non funziona per me. Qualcuno ha altri suggerimenti? Grazie. Seguendo il suggerimento di Phil che aggiorna il codice in base alla sua risposta. Mostra l'errore http://www.youtube.com/watch?v=9lekcH1JAf0&feature=youtu.be
Quindi ho creato un progetto di esempio. Ho provato questo su due telefoni diversi, Android versione 2.3.5 e 4.1, ho anche provato questo su emulatore versione 2.2. Dopo aver fatto clic sul pulsante mostra la finestra di dialogo, mostra la finestra di dialogo di avanzamento bene, e dovrebbe continuare a farlo. Ma facendo clic sul pulsante Cerca sui telefoni e sull'emulatore, la finestra di dialogo di avanzamento scompare. Ecco la lezione, e manifest segue.
Il comportamento corrente è che quando si fa clic sul pulsante di ricerca, la finestra di dialogo di avanzamento scompare. Il comportamento previsto o necessario è disattivare il pulsante di ricerca o in modo simile quando viene visualizzata la finestra di dialogo e si fa clic sul pulsante di ricerca, questo clic non fa scomparire la finestra di dialogo.
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>
mio xml ricercabile e ': res/xml/searchable.xml secondo il riferimento fornito. Ecco come il mio searchable.xml assomiglia:
<?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>
Mostraci il tuo codice, questo è il suggerimento n. – dbDev
Quando dici "non funziona", vuoi dire che non vedi la registrazione o il telefono lancia ancora la ricerca? – DeeV
Corretto, non vedo la registrazione senza inserire onSearchRequested() nel mio onCreate(). E la ricerca non viene avviata, ma i miei dialoghi scompaiono. –