2016-10-27 2 views
0

У меня есть код, который принимает переменную из внешнего массива JSONКак передать переменную из JSONArray

import java.io.IOException; 
import org.apache.http.HttpResponse; 
import org.apache.http.client.ClientProtocolException; 
import org.apache.http.client.HttpClient; 
import org.apache.http.client.methods.HttpPost; 
import org.apache.http.impl.client.DefaultHttpClient; 
import org.apache.http.util.EntityUtils; 
import org.json.JSONArray; 
import org.json.JSONException; 
import org.json.JSONObject; 
import android.app.Activity; 
import android.os.Bundle; 
import android.os.StrictMode; 
import android.widget.Toast; 

public class ListviewActivity extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     setContentView(R.layout.activity_main); 

     String json_str = getJsonData(); 

     try{ 
      JSONArray jArray = new JSONArray(json_str); 

       JSONObject json = null; 
       json = jArray.getJSONObject(0); 

       String date=json.getString("data"); 

      Toast.makeText(getBaseContext(), date, Toast.LENGTH_SHORT).show(); 

     } catch (JSONException e) { 
      e.printStackTrace(); 
     } 

    } 

    private String getJsonData(){ 
     StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder() 
       .detectDiskReads() 
       .detectDiskWrites() 
       .detectNetwork() 
       .penaltyLog() 
       .build()); 

     String str = ""; 
     HttpResponse response; 
     HttpClient myClient = new DefaultHttpClient(); 
     HttpPost myConnection = new HttpPost("url_php_file_with_JSON"); 

     try { 
      response = myClient.execute(myConnection); 
      str = EntityUtils.toString(response.getEntity(), "UTF-8"); 

     } catch (ClientProtocolException e) { 
      e.printStackTrace(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 

     return str; 
    } 
} 

//comparison variable (from String date=json.getString("data")) with an other static variable 

Как правильно отобразить переменную даты String = json.getString («данные») для сравнения в других функциях ?

В то время как он отображается в функции принимающей переменную с помощью Toast.makeText, и я должен работать с ним и в других областях файла Java

ответ

0

Вы должны сделать вашу строку глобальной переменной, как следующим образом:

public class ListviewActivity extends Activity { 

    private String date; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     setContentView(R.layout.activity_main); 

     String json_str = getJsonData(); 

     try{ 
      JSONArray jArray = new JSONArray(json_str); 

       JSONObject json = null; 
       json = jArray.getJSONObject(0); 

       date=json.getString("data"); 

      Toast.makeText(getBaseContext(), date, Toast.LENGTH_SHORT).show(); 

     } catch (JSONException e) { 
      e.printStackTrace(); 
     } 

    } 

    // The rest of your code 
} 

Таким образом, вы можете использовать его свободно в любом месте своего класса.

+0

Спасибо! Это работает) –

Смежные вопросы