I want to load a URL in the WebView if I click on an Item in my spinner. I've try to write the value from the selected item in the spinner in a string and reload the URL in the WebView with the new Website that I have selected with the spinner. But it doesn't load the new URL, I hope you guys can help me :)
array.xml:
<string-array name="server_array">
<item value="http://www.msn.com">Server 1</item>
<item value="http://www.stackoverflow.com">Server 2</item>
</string-array>
Strings:
String starturl = "http://www.google.de", selected;
WebView myWebView;
onCreate:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//WebView
myWebView = (WebView) findViewById(R.id.webView);
myWebView.setWebViewClient(new WebC());
WebSettings webSettings = myWebView.getSettings();
//JavaScript erlauben
webSettings.setJavaScriptEnabled(true);
//Start Url
myWebView.loadUrl(starturl);
Spinner:
//Spinner
Spinner spinner = (Spinner) findViewById(R.id.server_spinner);
ArrayAdapter<CharSequence>
adapter = ArrayAdapter.createFromResource(this,
R.array.server_array, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
}
onItemSelected:
public class SpinnerActivity extends AppCompatActivity implements AdapterView.OnItemSelectedListener {
public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
selected = parent.getItemAtPosition(pos).toString();
myWebView.loadUrl(selected);
}
public void onNothingSelected(AdapterView<?> parent) {
myWebView.loadUrl(starturl);
}
}
you are not calling setOnItemSelectedListener anywhere. Assuming that Spinner and WebView are in the same SpinnerActivity
, you have to call
Spinner spinner = (Spinner) findViewById(R.id.server_spinner);
ArrayAdapter<CharSequence>
adapter = ArrayAdapter.createFromResource(this,
R.array.server_array, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
spinner.setOnItemSelectedListener(this);
Where this
refers to SpinnerActivity
, which implements AdapterView.OnItemSelectedListener {