2015-08-28 30 views
2

我有一个JSONObject在我的MainActivity下一个函数,我想在函数之外和另一个类中使用它,我该怎么做?从MainActivity类访问varibale到另一个类

我想使这个变量public,这里是代码:

public void ListDrwaer() { 
     List<Map<String, String>> productList = new ArrayList<Map<String, String>>(); 

     try { 
      JSONObject jsonResponse = new JSONObject(jsonResult); 
      JSONArray jsonMainNode = jsonResponse.optJSONArray("products"); 

      for (int i = 0; i < jsonMainNode.length(); i++) { 
       JSONObject jsonChildNode = jsonMainNode.getJSONObject(i); 

      } 
      // System.out.println("*****JARRAY*****" + jsonMainNode.getJSONObject(0)); 
      List<Map<String, String>> productLista = new ArrayList<Map<String, String>>(); 
      JSONObject pro1 = jsonMainNode.getJSONObject(1); 
      String data = pro1.getString("name"); 
     // System.out.println("*****JARRAY*****" + data); 


      System.out.println("*****JARRAY*****" + pro1); 



     } catch (JSONException e) { 
      Toast.makeText(getApplicationContext(), "Error" + e.toString(), 
        Toast.LENGTH_SHORT).show(); 
     } 

我要让pro1(这是JSONObjectpublic和室外使用public void,并在另一个类中使用它。

我可以使用put或add来做到这一点吗?

+0

我认为你可以将它设置为公共变量,然后在另一个类/活动,调用MainActivity.pro1 – BNK

+0

我得到的Modifier公共不允许在这里错误,当我想在公共空间下做到这一点。 –

+0

public public MainActivity extends'' – BNK

回答

0

以下try代码,它可能会帮助..

Intent intent = new Intent(getBaseContext(), SignoutActivity.class); 
intent.putExtra("EXTRA_SESSION_ID", sessionId); 
startActivity(intent); 
+0

我不想使用Intent .... –

+0

define pro1作为一个公共静态变量,那么你可以在任何其他类别中使用它 – Vieuxport

0

您需要先创建变量这样

Static JSONObject pro1; 

任何方法外,然后使用

存取权限简单
classname.pro1 
+0

做到了这一点。我得到这个:Field'pro1'从不使用。 –

+0

是的,因为在listDrwaer中,你必须将JSONObject pro1更改为只有pro1,所以它不会再被设置为私有方法 –

0
  1. 你c声明变量public。 只是把

    public static JSONObject pro1;

您的类声明。 2.这是不安全的,因为: 1.如果您的应用将被Android系统杀死并重新创建,该变量将消失。 2.从其他线程访问该变量时,应该小心。