2016-10-09 2 views
0

Ich habe eine WebView App mit Android Studio erstellt, aber ich möchte eine Suchfunktion in der Navigationsleiste hinzufügen oder wenn dies nicht funktioniert, die Aktionsleiste.Android URL laden mit String von SearchView

Ich habe hinzugefügt:

<SearchView 
    android:id="@+id/Custom_Search" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" /> 

Zu der Aktionsleiste durch app_bar_main.xml und ich sehe es am vorderen Ende, aber das ist, wo ich weiter gehen kann nicht, wie ich ein kompletter Neuling bin, wenn es darum geht, Apps.

Was ich will, ist die Zeichenfolge in das Suchfeld eingegeben mit der Such-URL meiner Website geladen werden.

beispiels webView.loadUrl("http://www.example.com/result/?q=*search_string*");

ich über 5 Stunden verbracht haben versucht, dies herauszufinden und die Erforschung, was ohne Glück zu tun. Ich habe ähnliche Fragen diesbezüglich ohne Antworten gefunden. Ich hoffe, dass jemand mich in die richtige Richtung weisen kann, wenn sie nicht bereit sind, die vollständige Antwort zu geben. Dank

+0

_Als die Website für eine Non-Profit-Organisation ist, würde ich es vorziehen, mein eigenes Geld nicht dafür auszugeben, jemanden dazu zu bringen, dies zu implementieren._ Sie erwarten also, dass die Leute dies für Sie umsetzen. Es tut mir leid, aber SO ist nicht dafür, Sie können versuchen, die App selbst zu implementieren und wenn Sie ein technisches Problem haben, werden die Leute gerne versuchen, Ihnen zu helfen. – Marcs

+0

Vielen Dank dafür. Ich habe viele Stunden damit verbracht, herauszufinden, dass dies mein letzter Ausweg ist. Ich habe vielen Leuten selbst mit PHP-Problemen geholfen und würde andere nicht davon abhalten, Ihnen dabei zu helfen, meinen Beitrag zu wählen, wenn ich nur jemandem anderen bei diesem Projekt behilflich bin. – Mike

+0

Wenn Sie versucht haben, dies stundenlang herauszufinden, warum zeigen Sie nicht den Code, den Sie ausprobiert haben, damit die Leute Ihnen besser helfen können. Es tut mir leid, aber die Formel: "Ich habe das und ich will das" funktioniert nicht, funktioniert nie. Wie auch immer, viel Glück bei deinem Projekt, ich habe den Downvote entfernt, aber meiner Meinung nach solltest du zeigen, was du versucht hast. – Marcs

Antwort

0

Nach vielen Tagen zu versuchen, um dies herauszufinden Ich habe es geschafft, zum Laufen zu bringen (ish)

eine URL mit dem Suchbegriff Sie dies tun müssen, laden:

MainActivity.Java

@Override 
    public boolean onCreateOptionsMenu(Menu menu) { 

     getMenuInflater().inflate(R.menu.main, menu); 

     SearchView searchView = (SearchView) menu.findItem(R.id.menu_search).getActionView(); 
     SearchManager searchManager = (SearchManager) getSystemService(SEARCH_SERVICE); 
     searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName())); 
     Intent searchIntent = getIntent(); 
     String query = searchIntent.getStringExtra(SearchManager.QUERY); 
     if(Intent.ACTION_SEARCH.equals(searchIntent.getAction())) { 

      mwebView.loadUrl("http://example.co.uk/result/?q="+query); 

     } 

     return super.onCreateOptionsMenu(menu); 
    } 

main.xml

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto"> 


    <item 
     android:id="@+id/menu_search" 
     android:title="search" 
     android:icon="@drawable/ic_search_black_24dp" 
     app:showAsAction="ifRoom|collapseActionView" 
     app:actionViewClass="android.support.v7.widget.SearchView"/> 

</menu> 

AndroidManifest.xml (In Haupttätigkeit)

<intent-filter> 
       <action android:name="android.intent.action.SEARCH"/> 
      </intent-filter> 

      <meta-data android:name="android.app.searchable" 
       android:resource="@xml/searchable"/> 

Das ist es, werden Sie nun in der Lage sein, Ihre webview Website zu suchen.

Wenn ich sage, ich habe es habe Arbeit (ish) meine onPageStarted und onPageFinished Ereignisse funktionieren nicht, wenn die Such-URL Laden funktioniert, aber auf normalen mwebView.loadUrl Links in Ordnung.

mein onPageStarted und onPageFinished Code ist:

ProgressBar pd = null; 
     ImageView iv = null; 
     @Override 
     public void onPageStarted(WebView view, String url, Bitmap favicon) { 

      iv = (ImageView)findViewById(R.id.imageView2); 
      pd = (ProgressBar)findViewById(R.id.progressBar1); 
      iv.setVisibility(View.VISIBLE); 
      pd.setVisibility(View.VISIBLE); 

      super.onPageStarted(view, url, favicon); 
     } 

     @Override 
     public void onPageFinished(WebView view, String url) { 
      pd.postDelayed(new Runnable() { 
       public void run() { 
        pd.setVisibility(View.GONE); 
       } 
      }, 100); 
      iv.postDelayed(new Runnable() { 
       public void run() { 
        iv.setVisibility(View.GONE); 
       } 
      }, 100); 
      super.onPageFinished(view, url); 
     } 

Weiß jemand, warum dies geschehen würde?