Práca s údajmi vo formátoch JSON

Vývoj aplikácií pre Android, 8. časť

 Lis­ting 1:


<Grid­Layout xmlns:an­droid="http://sche­mas.an­droid.com/apk/res/an­droid"
    xmlns:tools="http://sche­mas.an­droid.com/tools"
    an­droid:layout_width="match_pa­rent"        
    an­droid:layout_height="match_pa­rent"        
    an­droid:use­De­faul­tMar­gins="true"        
    an­droid:alig­nmen­tMo­de="alig­nBounds"        
    an­droid:co­lum­nOr­derPre­served="fal­se"        
    an­droid:co­lum­nCount="3"
    tools:con­text="${pac­ka­ge­Na­me}.${ac­ti­vi­tyC­lass}" >

   <TextView
       an­droid:layout_gra­vi­ty="right"
       an­droid:text="@string/zme­na" />
 
  <TextView
      an­droid:layout_co­lumn="1"           
      an­droid:id="@+id/ak­ce"/>    
 
  <TextView
      an­droid:layout_co­lumn="0"
      an­droid:layout_gra­vi­ty="right"
      an­droid:text="@string/min" />
      
  <TextView
      an­droid:layout_co­lumn="1"             
      an­droid:id="@+id/min"/>    
      
  <TextView
      an­droid:layout_co­lumn="0"
      an­droid:layout_gra­vi­ty="right"
      an­droid:text="@string/max" />
      
  <TextView
     an­droid:layout_co­lumn="1"            
     an­droid:id="@+id/max"/>  
</Grid­Layout>


Lis­ting 2


pub­lic class Mai­nAc­ti­vi­ty extends Ac­ti­vi­ty
{
   sta­tic String sURL = "http://query.yahooapis.com/v1/pub­lic/yql...";

   sta­tic String sFir­ma = "";
   sta­tic String sDen­ne­Mi­ni­mum = "";
   sta­tic String sDen­ne­Maximum = "";
   sta­tic String sZme­na = "";

   @Overri­de
   pub­lic void on­Crea­te(Bund­le sa­ve­dIn­stan­ceS­ta­te)
   {
    su­per.on­Crea­te(sa­ve­dIn­stan­ceS­ta­te);
    set­Con­ten­tView(R.layout.ac­ti­vi­ty_main);
    new Ci­ta­jU­da­jeA­syn­cTask().execu­te();
   }

        
        
    pri­va­te class Ci­ta­jU­da­jeA­syn­cTask extends Asyn­cTask<String, String, String>
    {
       pro­tec­ted String doIn­Background(String... arg0)
       {
           De­faultHttpClient klientHTTP =
               new De­faultHttpClient(new Ba­sicHttpPa­rams());
           HttpPost httppost = new HttpPost(sURL);
        httppost.set­Hea­der("Con­tent-ty­pe", "ap­pli­ca­tion/json");
        In­putStream in­putStream = null;
                
        String sJSON = null;

        try
        {
           HttpRes­pon­se res­pon­se = klientHTTP.execu­te(httppost);        
           HttpEn­ti­ty en­ti­ty = res­pon­se.ge­tEn­ti­ty();
           in­putStream = en­ti­ty.get­Con­tent();
           Buf­fe­red­Rea­der rea­der = new Buf­fe­red­Rea­der(new
                         In­putStream­Rea­der(in­putStream, "UTF-8"), 8);
           Strin­gBuil­der sb = new Strin­gBuil­der();
           String ria­dok = null;
                    
           whi­le ((ria­dok = rea­der.read­Li­ne()) != null)
           {
             sb.ap­pend(ria­dok + "\n");
           }
           sJSON = sb.toS­tring();
        } catch (Excep­tion e)
        {
          e.prin­tStackTra­ce();
        }
        fi­nal­ly
        {
           try{if(in­putStream != null)in­putStream.clo­se();}
           catch(Excep­tion e){}
        }

        JSO­NOb­ject jso­nOb­ject;
        try
        {
          // vy­maz zna­ky na­vy­se
            sJSON = sJSON.substring(7);
            sJSON = sJSON.substring(0, sJSON.length()-2);
            jso­nOb­ject = new JSO­NOb­ject(sJSON);

            JSO­NOb­ject queryJ­SO­NOb­ject = jso­nOb­ject.get­JSO­NOb­ject("query");
            JSO­NOb­ject re­sultsJSO­NOb­ject =
                     queryJ­SO­NOb­ject.get­JSO­NOb­ject("re­sults");
            JSO­NOb­ject quoteJ­SO­NOb­ject =
                     re­sultsJSO­NOb­ject.get­JSO­NOb­ject("quote");
                    
            sFir­ma = quoteJ­SO­NOb­ject.getString("sym­bol");
            sDen­ne­Mi­ni­mum = quoteJ­SO­NOb­ject.getString("Days­Low");
            sDen­ne­Maximum = quoteJ­SO­NOb­ject.getString("Days­High");
            sZme­na = quoteJ­SO­NOb­ject.getString("Chan­ge");
        } catch (JSO­NExcep­tion e)
        {
           e.prin­tStackTra­ce();
        }
        re­turn sJSON;
         }

            
   pro­tec­ted void on­Pos­tExecu­te(String re­sult)
   {
    TextView ak­ce = (TextView)fin­dViewById(R.id.ak­ce);
    TextView min = (TextView)fin­dViewById(R.id.min);
    TextView max = (TextView)fin­dViewById(R.id.max);

    ak­ce.set­Text(sFir­ma + " : " + sZme­na);
    min.set­Text(sDen­ne­Mi­ni­mum);
    max.set­Text(sDen­ne­Maximum);
    }
}



Ohodnoťte článok:
 
 
 

24 hodín

týždeň

mesiac

 
 
  Zdieľaj cez Facebook Zdieľaj cez Google+ Zdieľaj cez Twitter Zdieľaj cez LinkedIn Správy z RSS Správy na smartfóne Správy cez newsletter