1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

Search Dialog startet neue activity

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von MandraKobold, 15.12.2011.

  1. MandraKobold, 15.12.2011 #1
    MandraKobold

    MandraKobold Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    59
    Erhaltene Danke:
    2
    Registriert seit:
    18.11.2011
    Hallo,

    ich habe auf eine activity einen SearchDialog gepackt. Dieser wird angezeigt und funktioniert soweit auch einwandfrei, allerdings ist mir aufgefallen, dass wenn ich eine Suchanfrage starte, sprich den Text eingebe und Enter drücke, zur Datenansicht (in ListView) die Activity neu geöffnet wird.
    Würde mich ja soweit nicht stören wenn nicht nach 10 Suchanfragen die Activity 10 mal auf den Stack liegen würde und daher 10 mal geschlossen werden muss.
    Im moment habe ich es jetzt einfach so gelöst, dass die activity wenn sie in onStop geht geschlossen wird. Allerdings würde mich schon interessieren, ob das normal ist oder ob es ein Fehler meinerseits ist und ob es vielleicht eine bessere alternative gibt.

    Hier ein Teil des Codes:

    Code:
    @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.search);
    
            
            this.onSearchRequested();
    
            handleIntent(getIntent());
        }
    
        @Override
        protected void onNewIntent(Intent intent) {
            setIntent(intent);
    
            handleIntent(intent);
        }
    
        private void handleIntent(Intent intent) {
    
            Intent Intent = getIntent();
    
            if (Intent.ACTION_SEARCH.equals(Intent.getAction())) {
                String query = Intent.getStringExtra(SearchManager.QUERY);
                SearchRecentSuggestions suggestions = new SearchRecentSuggestions(
                        this, MySuggestionProvider.AUTHORITY,
                        MySuggestionProvider.MODE);
                suggestions.saveRecentQuery(query, null);
                doMySearch(query);
            }
    
        }
        
    
    
        private void doMySearch(String query) {
    
            searchObj = new ObjectCatalog();
    
            for (int i = 0; i < _obj.get_obj().size(); i++) {
    
                if (_obj.get(i).getName().startsWith(query))
                    searchObj.add(_obj.get(i);
    
            }
    
            // display the result
            adapter = new ObjectList(this, searchObj);
            this.setListAdapter(adapter);
    
        }
    
    
    Danke schon mal

    LG
    Mandra
     
  2. strider, 15.12.2011 #2
    strider

    strider Erfahrener Benutzer

    Beiträge:
    208
    Erhaltene Danke:
    45
    Registriert seit:
    30.09.2011
    Phone:
    Nexus S
    android:launchMode="singleTask"

    Ist das was du suchst.
     
    MandraKobold bedankt sich.
  3. MandraKobold, 15.12.2011 #3
    MandraKobold

    MandraKobold Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    59
    Erhaltene Danke:
    2
    Registriert seit:
    18.11.2011
    Danke.
    Das Hilft und die ganze activity ist einen tick schneller :thumbup:
     

Diese Seite empfehlen