如何访问填写的AsyncTask,从另一个类的ListView? [英] How to access a listview that filled in asynctask, from another class?

查看:171
本文介绍了如何访问填写的AsyncTask,从另一个类的ListView?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我开发使用服务的Andr​​oid应用程序。我正在从服务信息和保持JSON数据到ArrayList中它是好的,但我从另一个类需要这些数据。我试图访问该数组列表,但它给空每次我试图。这里是我的code:

 公共类AllVehicles扩展android.app.Fragment {
公众的ArrayList<汽车与GT; vehicleList =新的ArrayList<车辆与GT;();
公共AllVehicles(){}@覆盖
公共无效的onCreate(捆绑savedInstanceState){
    super.onCreate(savedInstanceState);
    GetAllVehicles getAllVehicles =新GetAllVehicles();
    getAllVehicles.execute(TR101,member.getAuthToken()的toString(),将String.valueOf(member.getMemberId()),将String.valueOf(member.getFirmId())。);
}
异步任务// onPostExecute
 保护无效onPostExecute(长效){
            尝试{
                JSONObject的jsonObj =新的JSONObject(response_vehicles);
                JSONArray jsonArray = jsonObj.getJSONArray(VehicleOnlineList);
                的for(int i = 0; I< jsonArray.length();我++){
                    车辆=新车();
                    vehicle_report =新车();
                    JSONArray jsonArr = jsonArray.getJSONArray(ⅰ);
                    vehicle.setVehicleId(jsonArr.isNull(0)?0:jsonArr.getInt(0));
                    vehicle.setDeviceId(jsonArr.isNull(1)?0:jsonArr.getInt(1));
                    vehicle.setPlate(jsonArr.isNull(2),:jsonArr.getString(2));
                    vehicle.setVehicleName(jsonArr.isNull(3),:jsonArr.getString(3));
                    vehicleList.add(车辆);
                }
//调用vehicleList的方法:
公众的ArrayList<汽车与GT; getVehicleReportList(){
        返回vehicleList;
    }

这是我想打电话给该列表中的类:

 公共类ReportActivity扩展android.app.Fragment {
    车辆的车辆;
    AllVehicles allVehicles;
    公共ReportActivity(){
    }
公共查看onCreateView(LayoutInflater充气器,容器的ViewGroup,
                             捆绑savedInstanceState){
        查看查看= inflater.inflate(R.layout.fragment_report_activity,集装箱,FALSE);
        allVehicles =新AllVehicles();
        ArrayList的<汽车与GT; vehicleArrayList = allVehicles.getVehicleReportList();
}


解决方案

 公共静态的ArrayList<汽车与GT; vehicleList =新的ArrayList<车辆与GT;();

和使用 AllVehicles.vehicleList 在任何你想使用。

I am developing an android application that uses services. I am getting info from that service and hold json data into arraylist it is okay but I need these data from another class. I am trying to access this array list but it gives null every time I try. Here is my code:

public class AllVehicles extends android.app.Fragment {
public ArrayList<Vehicle> vehicleList= new ArrayList<Vehicle>();
public AllVehicles() {}

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);       
    GetAllVehicles getAllVehicles=new GetAllVehicles();
    getAllVehicles.execute("tr101", member.getAuthToken().toString(), String.valueOf(member.getMemberId()), String.valueOf(member.getFirmId()));
}
//onPostExecute of async task
 protected void onPostExecute(Long result) {
            try {
                JSONObject jsonObj = new JSONObject(response_vehicles);
                JSONArray jsonArray = jsonObj.getJSONArray("VehicleOnlineList");                      
                for (int i = 0; i < jsonArray.length(); i++) {
                    vehicle = new Vehicle();
                    vehicle_report=new Vehicle();
                    JSONArray jsonArr = jsonArray.getJSONArray(i);
                    vehicle.setVehicleId(jsonArr.isNull(0) ? 0 : jsonArr.getInt(0));
                    vehicle.setDeviceId(jsonArr.isNull(1) ? 0 : jsonArr.getInt(1));
                    vehicle.setPlate(jsonArr.isNull(2) ? "" : jsonArr.getString(2));
                    vehicle.setVehicleName(jsonArr.isNull(3) ? "" : jsonArr.getString(3));
                    vehicleList.add(vehicle);               
                }
//The method for calling vehicleList:
public ArrayList<Vehicle> getVehicleReportList(){
        return vehicleList;
    }

The class that I want to call this List:

public class ReportActivity extends android.app.Fragment {
    Vehicle vehicle;
    AllVehicles allVehicles;
    public ReportActivity() {
    }
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_report_activity, container, false);
        allVehicles=new AllVehicles();
        ArrayList<Vehicle> vehicleArrayList=allVehicles.getVehicleReportList();
}

解决方案

public static ArrayList<Vehicle> vehicleList= new ArrayList<Vehicle>();

and use AllVehicles.vehicleList where ever you want to use.

这篇关于如何访问填写的AsyncTask,从另一个类的ListView?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆