[ maki989 @ 11.12.2012. 08:57 ] @
Pozdrav svima,

Imam jedno početničko pitanje vezano za Javu i izradu android aplikacija. Inače programiram u PHP-u ali upoznat sam sa nekim osnovama OOP-a pa sada pokušavam složiti nešto u Javi, ali budući da se tek učim malo sam zapeo :)

Znači cilj mi je sljedeći, napisati jednostavnu aplikaciju koja će se spojiti na google webmaster tools i povući nekakve podatke, za početak će biti dovoljno samo listu sajtova, čisto da vidim kako to radi.

Za sada imam napisan dio programa u koji se unesu username i password, te se ti podatci šalju programu. Sada bi se trebalo ulogirati na GWT i pokupiti podatke. Google ima prilično dobro dokumentirano ovo što mi treba, ali budući da sam početnik to mi baš ne pomaže pa bih molio pomoć.

Dokumentacija je ovdje https://developers.google.com/...pers_guide_java#GettingStarted

Za sada imam sljedeći kod

Code:

package com.example.gwtalert;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.Button;
import android.widget.EditText;
import android.view.View;
import android.widget.TextView;
import android.view.View.OnClickListener;

// zanemarite što sam includao sve ovo, ubačeno je jer ne znam što će mi sve trebati, kasnije ću počistiti
import com.google.gdata.client.webmastertools.WebmasterToolsService;
import com.google.gdata.data.OutOfLineContent;
import com.google.gdata.data.webmastertools.CrawlRate;
import com.google.gdata.data.webmastertools.DomainPreference;
import com.google.gdata.data.webmastertools.SitemapsEntry;
import com.google.gdata.data.webmastertools.SitemapsFeed;
import com.google.gdata.data.webmastertools.SitemapsRegularEntry;
import com.google.gdata.data.webmastertools.SitesEntry;
import com.google.gdata.data.webmastertools.SitesFeed;
import com.google.gdata.data.webmastertools.VerificationMethod;
import com.google.gdata.util.AuthenticationException;
import com.google.gdata.util.ServiceException;
import com.google.gdata.client.http.AuthSubUtil;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLEncoder;


// pocetak
public class Main extends Activity {
    
    // globalne
    Button myButton;
    EditText my_username;
    EditText my_password;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        // button listener
        myButton = (Button) findViewById(R.id.login_button);
        myButton.setOnClickListener(myhandler1);
    }

    // onclick na button
    private OnClickListener myhandler1 = new OnClickListener() {
        public void onClick(View v) {
            // promjeni pogled
            setContentView(R.layout.show_data);
            
            // login data
            my_username = (EditText) findViewById(R.id.username);
            my_password = (EditText) findViewById(R.id.password);
            
            TextView login_View = (TextView) findViewById(R.id.show_text); // ovdje bih htio ispisati popis sajtova
            
            // pokusaj spajanja na GWT, ovaj dio nisam siguran jel uopće radi

            WebmasterToolsService myService = new WebmasterToolsService("gwtalert_app");
            try {
                myService.setUserCredentials(my_username.getText().toString(), my_password.getText().toString());
            } catch (AuthenticationException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            
            // ovdje treba dio koda koji će pokuputi popis sajtova i ispisati ih u login_View
        
        }
    };

      
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // ovo cu kasnije mjenjati
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }
    
 
    
}



Nadam se da ne tražim previše :)

Hvala
[ bantu @ 12.12.2012. 07:37 ] @
Ne razumijem se baš u gwt ali vidim da obavljaš time consuming task na glavnom UI thread-u. Pogledaj malo android.os.AsyncTask klasu i kako se koristi.

Koliko vidim baš na linku koji si ostavio ima i primjer kako se pribavlja lista sajtova. Samo malo prilagodi svojoj potrebi, za test možeš da izbaciš System.out.println i da ubaciš Log.d kako bi na logcat-u mogao da pratiš ispis.
Code:

public static void printUserSites(WebmasterToolsService myService)
    throws ServiceException, IOException {
  try {
    System.out.println("Printing user's sites:");

    // Request the feed
    URL feedUrl = getSitesFeedUrl();
    SitesFeed sitesResultFeed = myService.getFeed(feedUrl, SitesFeed.class);

    // Print the results
    for (SitesEntry entry : sitesResultFeed.getEntries()) {
      System.out.println("\t" + entry.getTitle().getPlainText());
    }
  } catch (MalformedURLException e) {
    throw new IOException("URL for sites feed is malformed.");
  }
}