Comment appeler la méthode de OnClickListener.onClick méthode ?
import java.io.InputStreamReader;
import java.io.Reader;
import java.net.URL;
import java.net.URLEncoder;
import com.google.gson.Gson;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.TextView;
public class SampleActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ImageButton button = (ImageButton) findViewById(R.id.imageButton1);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
try {
doSomething();
} catch (Exception e) {
//TODO Auto-generated catch block
e.printStackTrace();
}
}
});
}
public void doSomething() throws Exception {
EditText search2 = (EditText)findViewById(R.id.editText1);
TextView urltext = (TextView)findViewById(R.id.textView1);
String google = "http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=";
String search = search2.toString() + "site:mysite.com";
String charset = "UTF-8";
URL url = new URL(google + URLEncoder.encode(search, charset));
Reader reader = new InputStreamReader(url.openStream(), charset);
GoogleResults results = new Gson().fromJson(reader, GoogleResults.class);
String voidurlresult = results.getResponseData().getResults().get(0).getUrl().toString();
urltext.setText(voidurlresult);
}
}
s'il vous plait regardez le code ci-dessus.....quel est le problème avec le code . Quand je clique sur le bouton je ne reçois rien. quand je clique sur le bouton je veux obtenir l'url de la première de résultats sur google ...si quelqu'un peut m'aider je vous en seront reconnaissants
essayez d'ajouter des messages de journal ou toast message de notification à la
ce que @slayton dit ce serait un bon test ou juste essayer de réglage urltext.setText("Hé, mon cliquez travaillé!"); Probable que votre méthode pour obtenir des données à partir de la page ne fonctionne pas comme prévu
- je changer urltext.setText à quelque chose afin de le tester, mais il n'apparaît pas ...
j'ai eu le plus de code à partir de stackoverflow.com/questions/3727662/... si cela peut m'aider de quelqu'un pour m'aider!
doSomething
méthode pour s'assurer que le doSomething
méthode est appelé.ce que @slayton dit ce serait un bon test ou juste essayer de réglage urltext.setText("Hé, mon cliquez travaillé!"); Probable que votre méthode pour obtenir des données à partir de la page ne fonctionne pas comme prévu
- je changer urltext.setText à quelque chose afin de le tester, mais il n'apparaît pas ...
j'ai eu le plus de code à partir de stackoverflow.com/questions/3727662/... si cela peut m'aider de quelqu'un pour m'aider!
OriginalL'auteur androiddevs78 | 2011-10-18
Vous devez vous connecter pour publier un commentaire.
Modifier l'instruction entouré dans le rapport d'essai. Cela permettra d'assurer que le droit de la classe est d'être référencé à l'appel de la méthode.
OriginalL'auteur user3052953
Votre code est correct, il semble juste comme il n'y a pas moyen pour vous de connaître la méthode est appelé. Pensez à ajouter certains de tri de la notification, même à votre
doSomething()
méthode de sorte que vous pouvez savoir si la méthode est appelée.Faire quelque chose comme ceci:
OriginalL'auteur slayton
Alors que le code est correct, cliquez sur le bouton de l'écouteur peut ne pas être configuré si une erreur est survenue avant l'auditeur bloc. Enveloppez votre code dans une erreur piège pour déterminer si une erreur se produit. C'est aussi les bonnes pratiques de codage - en particulier lors de l'accès à des ressources externes.
Il se peut aussi que la méthode appelée est en faute et ne pas terminer les tâches. Vous devez placer un piège dans cette procédure.
OriginalL'auteur Roy Hinkley
Désolé pour mon mauvais anglais.
En fait, vous pouvez obtenir le courant de la méthode nom de la StackTrace.
Voici un exemple:
J'ai oublié de mentionner que cette approche peut ne pas fonctionner dans toutes les circonstances.
OriginalL'auteur AlenBer
Je suppose que je suis à la fin de la partie, mais cela pourrait aider quelqu'un d'autre.
Vous ne pouvez pas faire une opération réseau sur un thread principal. Votre code échoue silencieusement avec
NetworkOnMainThreadException
soulevées par le système. Si vous exécutez ce code et vérifier le LogCat sortie de votre application, vous allez remarquez l'exception.Solution est de faire une opération réseau sur un thread de travail. Vous pouvez utiliser un
AsyncTask
dans ce cas d'utilisation.OriginalL'auteur Aleksandar Ilic