9
votes

Activité de recherche non lancée lorsque vous appuyez sur Entrée

L'activité de recherche n'est pas lancée lorsque vous appuyez sur Entrée. La vue de recherche est bien affichée sur la barre d'action. Mais lorsque je tape la requête de recherche et appuyez sur Entrée

androidmanifest.xml p> xxx pré>

voici le menu.xml p> xxx pré> L'activité qui montre une barre d'action. p> xxx pré>

l'activité SearchResult qui devrait être l'activité appelée lorsque vous appuyez sur le bouton d'envoi de recherche p>

public class SearchResultsActivity extends Activity {


@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    Log.d("search", "search triggered");
    setContentView(R.layout.searchpage);

    handleIntent(getIntent());
}
@Override
protected void onNewIntent(Intent intent) {
    Log.d("search", "search triggered");
    setIntent(intent);
    handleIntent(intent);
}
private void handleIntent(Intent intent)
{
     if (Intent.ACTION_SEARCH.equals(intent.getAction())) {
            String query = intent.getStringExtra(SearchManager.QUERY);
            Log.d("search", query);
}
  }

 @Override
 public boolean onSearchRequested() {

     Log.d("search", "search triggered");

     return false;  // don't go ahead and show the search box
 }


1 commentaires

Ceci est un bon tutoriel pour mettre en œuvre une interrogeable à Android. Javapapers.com/android/android-Seechercherview-action-bar-Tutoria l espérons que ça vous aide!


6 Réponses :


4
votes

a résolu le problème. La balise Était nécessaire pour être pour une application .Remouver l'activité de l'activité et la mettre sous application a fait l'affaire.

Voici la dernière étiquette d'application dans Manifest.xml P>

   <application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme"
    >
    <meta-data android:name="android.app.default_searchable" android:value=".SearchResultsActivity"/>
    <activity
        android:name="com.punit.rateit.MainActivity"
        android:label="@string/app_name" >
        <meta-data android:name="android.app.default_searchable"           
            android:value="com.punit.rateit.SearchResultsActivity" /> 
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

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




1
votes

Je n'utilisais pas les chaînes dans la recherche.

Vous devez le configurer de cette façon ou vous obtiendrez NULL. Je venais de mettre en texte au lieu d'utiliser @string. xxx


0 commentaires


2
votes

Création d'un objet de composantName avec le nom de la classe d'activité de résultat de la recherche a fonctionné pour moi. Comme ceci: xxx


0 commentaires

0
votes

J'ai lutté avec le problème pendant une journée ou deux, ce n'est pas très clairement mentionné dans la documentation.

searchView.setSearchableInfo(searchManager.getSearchableInfo(new ComponentName(this, SearchResultActivity.class)));


0 commentaires