【问题标题】:Getting data from ArrayList in a diffrent class从不同类中的 ArrayList 获取数据
【发布时间】:2014-09-11 16:01:45
【问题描述】:

我正在从 json api 到我的数组列表进行解析;

  package com.example.dovizkuru;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;

import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;

import android.os.AsyncTask;
import android.util.Log;

public class DownloadDovizTask extends AsyncTask<String,Void,String>{

    public interface GetDovizResponseCallback{
        void dovizLoadingFinished(String response);
    }

    GetDovizResponseCallback getDovizResponseCallback;

    public DownloadDovizTask(GetDovizResponseCallback getDovizResponseCallback) {
        this.getDovizResponseCallback = getDovizResponseCallback;
    }
     @Override
        protected String doInBackground(String... urls) {
         Log.d("URL", urls[0]);
         String url = urls[0];
          String response = "";

            DefaultHttpClient client = new DefaultHttpClient();
            HttpGet httpGet = new HttpGet(url);
            try {
              HttpResponse execute = client.execute(httpGet);
              InputStream content = execute.getEntity().getContent();

              BufferedReader buffer = new BufferedReader(new InputStreamReader(content));
              String s = "";
              while ((s = buffer.readLine()) != null) {
                response += s;
              }

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

          Log.d("URL", "RESPONSE: "+response);
          return response;
           }
   @Override
       protected void onPostExecute(String result) {
       getDovizResponseCallback.dovizLoadingFinished(result);

        }
    }

然后我把它放在像

这样的 ArrayList 中
@Override
public void dovizLoadingFinished(String response) {
    // TODO Auto-generated method stub
    ArrayList<String> list1=new ArrayList<String>();
    JSONArray jsonArrayDoviz;
    try {
        JSONObject jObj = new JSONObject(response);
        jsonArrayDoviz = jObj.getJSONArray("value");
            dovizList.clear();
            for (int i = 0; i < jsonArrayDoviz.length(); i++) {

                Doviz doviz = new Doviz();

                JSONObject jsonObject = jsonArrayDoviz.getJSONObject(i);
                doviz.setAdi(jsonObject.getString("adi"));  
                doviz.setAlis(jsonObject.getString("alis"));
                doviz.setSatis(jsonObject.getString("satis"));
                doviz.setKey(jsonObject.getString("key"));
                doviz.setOran(jsonObject.getString("oran"));
                doviz.setType(jsonObject.getString("type"));
                doviz.setUpDown(jsonObject.getString("upDown"));
                list1.add(doviz.getAdi());
                list1.add(doviz.getAlis());
                list1.add(doviz.getSatis());
                dovizList.add(doviz);

            }       
    } catch (JSONException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    } 

    ListView listview =(ListView) findViewById(R.id.listView1);
    adapter = new Adapter(this,dovizList);
    listview.setAdapter(adapter);
}

然后在另一个班级,我试图从 ArrayList 中获取 alis 值的数据,但它返回 null/0 给我。

我尝试制作一个 GetArraylist();首先获取arraylist的函数 我还尝试将 ArrayList 声明设为 public static

顺便说一下,我试图从中访问数据的新类是另一个意图。我的解析工作正常,我在我的第一意图中列出了它们。

那么我还有其他方法可以从这个 ArrayList 中获取数据吗?

提前感谢您的帮助。

【问题讨论】:

    标签: android class android-intent arraylist


    【解决方案1】:

    找到了解决方案,它在列表中使用公共静态,然后将它们放入新类中。它之前不起作用的原因是由于来自 API 的一些不好的反馈,我尝试使用替换可能的坏反馈来替换给我 ',' 而不是 '.'在某些地方,它的工作原理。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-26
      • 2011-05-14
      • 2016-06-21
      • 1970-01-01
      相关资源
      最近更新 更多