I want to show the current URL
of the WebView
in a SearchView
menu item.
I know that to get the URL
, I need to use the WebView
method getUrl()
, but I don`t know how to show it after searching the query.
Here my code:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu_main, menu);
MenuItem searchItem = menu.findItem(R.id.action_search);
final SearchView searchView = (SearchView)searchItem.getActionView();
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
String url = "https://www.google.com/search?q="+query;
PlaceholderFragment.mWebView.loadUrl(url);
searchView.clearFocus();
return true;
}
@Override
public boolean onQueryTextChange(String newText) {
return false;
}
});
return true;
}
Also how do I add the capability to copy and paste this URL?
can you use something like that ? You will get user changed url in shouldOverrideUrlLoading
method
PlaceholderFragment.mWebView.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView wView, String url)
{
searchView.setQuery(url, false);
wView.loadUrl(url);
return true;
}
});
final SearchView searchView = (SearchView)searchItem.getActionView();
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
String url = "https://www.google.com/search?q="+query;
PlaceholderFragment.mWebView.loadUrl(url);
searchView.clearFocus();
return true;
}
@Override
public boolean onQueryTextChange(String newText) {
return false;
}
});
If any issue, let me now
Update
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu, menu);
searchView = (SearchView) menu.findItem(R.id.action_search).getActionView();
int id = searchView.getContext().getResources().getIdentifier("android:id/search_src_text", null, null);
EditText editText = (EditText) searchView.findViewById(id);
}
Menu xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/action_search"
android:actionLayout="@layout/my_search_view"
android:actionViewClass="android.widget.SearchView"
android:icon="@android:drawable/ic_menu_search"
android:showAsAction="always"
android:title="Search" />
</menu>
Now ,you can use that edittext . It is simply hack of searchview ...
Now you can do selectAll
on click of searchView
editText.selectAll();