Как я могу назвать следующую пустоту на кнопку Android? - PullRequest
0 голосов
/ 18 октября 2011

У меня есть следующий код, и я хочу вызвать этот код при нажатии кнопки. Как я могу это сделать?

public static void main(String[] args) throws Exception {
String google = "http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=";
String search = "stackoverflow";
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);

// Show title and URL of 1st result.
System.out.println(results.getResponseData().getResults().get(0).getTitle());
System.out.println(results.getResponseData().getResults().get(0).getUrl());

}

Ответы [ 2 ]

1 голос
/ 18 октября 2011

Сначала вы должны изменить несколько вещей. Вы не должны называть метод main. В Android вы не используете основной метод. Также в Android вы не используете System.out.println, но вместо этого вы используете класс Android Log.

Я бы изменил метод, чтобы он выглядел так:

public static void doSomething() throws Exception {
    String google = "http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=";
    String search = "stackoverflow";
    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);

    // Show title and URL of 1st result.
    String tag = "myTag";
    Log.d(tag, results.getResponseData().getResults().get(0).getTitle());
    Log.d(tag, results.getResponseData().getResults().get(0).getUrl());
}

Затем, когда вы определите свой OnClickListener, просто вызовите вышеуказанный метод в методе onClick():

public void onClick(View v){
    doSomething();
}
0 голосов
/ 18 октября 2011

Скажем, кнопка, на которую нажимают, называется myButton. Вы бы тогда сделали:

myButton.addOnClickListener(new View.OnClickListener(){
   public void onCick(View view){
     String google = "http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=";
     String search = "stackoverflow";
     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);
   });

Я вынул System.out.println, потому что вы не можете сделать это в Android. Вы можете попробовать распечатать в журнале, сделать тосты или сделать что-то другое.

...