Mon application a un WebView en haut. Pour montrer des choses, j'utilise Toast. Mais la boîte Toast n'a jamais montré si WebView apparaît, alors qu'avant l'affichage de WebView, Toast est visible. Je me demandais si Toast était probablement couvert par WebView. Quelqu'un at-il eu les mêmes problèmes?1) Différence entre setOnClickListener et onclick 2) comment recharger webview sans recharger d'autres dans la même linearlayout
Merci.
ÉDITION !!! Salut, merci pour toutes vos contributions. J'ai trouvé que j'ai posté une mauvaise question pour mes problèmes. J'ai trouvé que les vrais problèmes sont les suivants. Dans le code, j'utilise setOnClickListener pour enregistrer un rappel pour le bouton. Dans le débogage, j'ai trouvé que le callback n'est pas appelé pour une raison quelconque, donc l'instruction Toast n'est pas appelée, et elle n'est pas couverte par webview.
Ensuite, j'ai essayé les attributs onclick dans la mise en page xml pour définir un callback clickGo pour le bouton. Celui-ci fonctionne quand j'appuie sur le bouton, et le Toast montre. Maintenant, ma question est quelle est la différence entre setOnClickListener et onlick.
Encore une question, dans mon clickGo, j'actualise le webview. Le webview recharge en effet quand le bouton est cliqué. Mais pendant ce temps, le spinner est également rechargé et la position de sélection est réinitialisée au 0-ème. Comment puis-je empêcher cela?
Encore merci!
public class MainActivity extends Activity {
JSONArray jArray;
String result = null;
InputStream is = null;
StringBuilder sb=null;
private Spinner spinner;
private Button btnSubmit;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
addListenerOnButton();
addListenerOnSpinnerItemSelection();
new DownloadTask().execute("www.google.com");
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
// Given a string representation of a URL, sets up a connection and gets
// an input stream.
private String downloadUrl(String urlString) throws IOException {
HttpClient httpClient = new DefaultHttpClient();
HttpGet get = new HttpGet(urlString);
HttpResponse response = httpClient.execute(get);
// Build up result
return EntityUtils.toString(response.getEntity());
}
public void addListenerOnSpinnerItemSelection() {
spinner = (Spinner) findViewById(R.id.spinner);
spinner.setOnItemSelectedListener(new CustomOnItemSelectedListener());
}
public void clickGo(View v) {
Toast toast = Toast.makeText(MainActivity.this,
"OnClickListener : " +
"\nSpinner 1 : "+ String.valueOf(spinner.getSelectedItem()),
Toast.LENGTH_SHORT);
toast.setGravity(Gravity.TOP, 0, 0);
toast.show();
new DownloadTask().execute("www.google.com");
}
// get the selected dropdown list value
public void addListenerOnButton() {
spinner = (Spinner) findViewById(R.id.spinner);
btnSubmit = (Button) findViewById(R.id.button);
btnSubmit.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Toast toast = Toast.makeText(MainActivity.this,
"OnClickListener : " +
"\nSpinner 1 : "+ String.valueOf(spinner.getSelectedItem()),
Toast.LENGTH_SHORT);
toast.setGravity(Gravity.TOP, 0, 0);
toast.show();
new DownloadTask().execute("www.google.com");
}
});
}
`
// Implementation of AsyncTask used to download XML feed from stackoverflow.com.
private class DownloadTask extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... urls) {
return downloadUrl(urls[0]);
}
@Override
protected void onPostExecute(String result) {
setContentView(R.layout.activity_main);
// Displays the HTML string in the UI via a WebView
WebView myWebView = (WebView) findViewById(R.id.webview);
WebSettings webSettings = myWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
myWebView.loadUrl(result);
}
}
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<LinearLayout android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/word" />
<Button android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Go"
android:onClick="clickGo" />
</LinearLayout>
<Spinner android:id="@+id/spinner"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:entries="@array/dictionaries"
android:prompt="@string/dict_prompt" />
<WebView android:id="@+id/webview"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
</LinearLayout>
Pouvez-vous nous montrer votre code 'webView'? –
Ce sera la première fois que j'entends qu'un toast est recouvert. Collez également le code pour le Toast. – g00dy
J'ai changé mes questions et j'ai téléchargé mon code. –