java - 如何从另一个类访问填充了 asynctask 的 ListView ?

标签 java android arraylist

我正在开发一个使用服务的 Android 应用程序。我从该服务获取信息并将 json 数据保存到 arraylist 中,这是可以的,但我需要来自另一个类的这些数据。我正在尝试访问此数组列表,但每次尝试时它都会给出 null。这是我的代码:

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;
    }

我想调用此列表的类:

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>();

并在您想要使用的地方使用AllVehicles.vehicleList

关于java - 如何从另一个类访问填充了 asynctask 的 ListView ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35433057/

相关文章:

java - 为什么二进制表示为字符串?

android - 无法居中列小部件

java - 从 Android 更新 Facebook

android - 向现有 txt 文件添加文本时出错

java - 我可以动态修改 Hibernate/JPA 属性吗?

java - 从抽屉导航打开 Activity

Java Scanner(File) 行为异常,但 Scanner(FIleInputStream) 始终处理同一个文件

java - 在 Java 的 ArrayLists 输出中大写名称

java - 从 ArrayList 到 JComboBox

java - 读取数组列表的最后部分 :Java