如何访问填写的AsyncTask,从另一个类的ListView? [英] How to access a listview that filled in asynctask, from another class?
本文介绍了如何访问填写的AsyncTask,从另一个类的ListView?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我开发使用服务的Android应用程序。我正在从服务信息和保持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屋!
查看全文