Android 带有ListView和JSON Asynctask的片段
我有一个片段使用了Android 带有ListView和JSON Asynctask的片段,android,json,listview,android-fragments,android-asynctask,Android,Json,Listview,Android Fragments,Android Asynctask,我有一个片段使用了异步任务。但是,我想在列表视图中显示这些值。这是我为JSON数据编写的代码,但我不知道如何制作,因此我能够在列表视图中显示这些数据。请帮帮我 代码: import android.app.Activity; import android.app.ProgressDialog; import android.os.AsyncTask; import android.os.Bundle; import android.support.v4.app.Fragment; import
异步任务
。但是,我想在列表视图中显示这些值。这是我为JSON数据编写的代码,但我不知道如何制作,因此我能够在列表视图中显示这些数据。请帮帮我
代码:
import android.app.Activity;
import android.app.ProgressDialog;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.HashMap;
public class NavLeaveAppFragment extends Fragment {
ProgressDialog pDialog;
ArrayList<HashMap<String, String>> emplist = new ArrayList<HashMap<String, String>>();
private static String url = "http://203.192.191.137:8080/apitest";
// JSON Node names
private static final String TAG_EMPLOYEE = "aaData";
private static final String TAG_ARRAY = "employees";
private static final String TAG_ID = "id";
private static final String TAG_FIRSTNAME = "first_name";
private static final String TAG_LASTNAME = "last_name";
private static final String TAG_GROUP = "group";
private static final String TAG_STATUS = "status";
private static final String TAG_PAYTYPE = "paytype";
private static final String TAG_WORKCODE = "workcode";
JSONArray employees = null;
public static NavLeaveAppFragment newInstance() {
NavLeaveAppFragment fragment = new NavLeaveAppFragment();
return fragment;
}
public NavLeaveAppFragment() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View rootview = inflater.inflate(R.layout.fragment_nav_leave_applications, container, false);
new GetLeaveInfo().execute();
return rootview;
}
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
((Dashboard) activity).onSectionAttached(2);
}
private class GetLeaveInfo extends AsyncTask<Void, Void, Void>{
@Override
protected void onPreExecute() {
super.onPreExecute();
pDialog = new ProgressDialog(getActivity());
pDialog.setTitle("PHRISM");
pDialog.setMessage("Please wait...");
pDialog.setCancelable(false);
pDialog.show();
}
@Override
protected Void doInBackground(Void... arg0) {
ServiceHandler sh = new ServiceHandler();
String jsonStr = sh.makeServiceCall(url, ServiceHandler.GET);
Log.d("Response: ", "> " + jsonStr);
if (jsonStr != null) {
try {
JSONObject jsonObj = new JSONObject(jsonStr);
employees = jsonObj.getJSONArray("aaData");
for (int i = 0; i < employees.length(); i++) {
JSONArray jsonArray = employees.getJSONArray(i);
String id = jsonArray.getString(0);
String firstname = jsonArray.getString(1);
String lastname = jsonArray.getString(2);
String group = jsonArray.getString(3);
String status = jsonArray.getString(4);
String paytype = jsonArray.getString(5);
String workcode = jsonArray.getString(6);
String shiftcode = jsonArray.getString(7);
HashMap<String, String> employee = new HashMap<String, String>();
// adding each child node to HashMap key => value
employee.put("id", id);
employee.put("first_name", firstname);
employee.put("last_name", lastname);
employee.put("group", group);
employee.put("status",status);
employee.put("paytype", paytype);
employee.put("workcode", workcode);
employee.put("shiftcode", shiftcode);
Log.e("Values", id + " " + firstname + " " + lastname);
// adding employee to employee list
emplist.add(employee);
}
} catch (JSONException e) {
e.printStackTrace();
}
} else {
Log.e("ServiceHandler", "Couldn't get any data from the url");
}
return null;
}
@Override
protected void onPostExecute(Void result) {
super.onPostExecute(result);
// Dismiss the progress dialog
if (pDialog.isShowing())
pDialog.dismiss();
}
}
}
导入android.app.Activity;
导入android.app.ProgressDialog;
导入android.os.AsyncTask;
导入android.os.Bundle;
导入android.support.v4.app.Fragment;
导入android.util.Log;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.ViewGroup;
导入org.json.JSONArray;
导入org.json.JSONException;
导入org.json.JSONObject;
导入java.util.ArrayList;
导入java.util.HashMap;
公共类NavLeaveAppFragment扩展了片段{
ProgressDialog;
ArrayList emplist=新的ArrayList();
专用静态字符串url=”http://203.192.191.137:8080/apitest";
//JSON节点名称
私有静态最终字符串标记_EMPLOYEE=“aaData”;
私有静态最终字符串TAG_ARRAY=“employees”;
私有静态最终字符串标记\u ID=“ID”;
私有静态最终字符串TAG_FIRSTNAME=“first_name”;
私有静态最终字符串标记\u LASTNAME=“last\u name”;
私有静态最终字符串标记_GROUP=“GROUP”;
私有静态最终字符串标记_STATUS=“STATUS”;
私有静态最终字符串标记_PAYTYPE=“PAYTYPE”;
私有静态最终字符串标记_WORKCODE=“WORKCODE”;
JSONArray employees=null;
公共静态NavLeaveAppFragment newInstance(){
NavLeaveAppFragment=新的NavLeaveAppFragment();
返回片段;
}
公共NavLeaveAppFragment(){
}
@凌驾
CreateView上的公共视图(布局、充气机、视图组容器、捆绑包保存状态){
视图根视图=充气机。充气(R.layout.fragment\u nav\u leave\u应用程序,容器,false);
新建GetLeaveInfo().execute();
返回rootview;
}
@凌驾
公共事务主任(活动){
超级转速计(活动);
((仪表板)活动)。附件(2);
}
私有类GetLeaveInfo扩展异步任务{
@凌驾
受保护的void onPreExecute(){
super.onPreExecute();
pDialog=newprogressdialog(getActivity());
pDialog.setTitle(“PHRISM”);
setMessage(“请稍候…”);
pDialog.setCancelable(假);
pDialog.show();
}
@凌驾
受保护的Void doInBackground(Void…arg0){
ServiceHandler sh=新的ServiceHandler();
字符串jsonStr=sh.makeServiceCall(url,ServiceHandler.GET);
Log.d(“响应:”、“>”+jsonStr);
if(jsonStr!=null){
试一试{
JSONObject jsonObj=新的JSONObject(jsonStr);
employees=jsonObj.getJSONArray(“aaData”);
对于(int i=0;ivalue
雇员姓名(下称“id”,下称“id”);
员工姓名(“名字”,名字);
员工姓名(“姓氏”,姓氏);
雇员。put(“集团”,集团);
员工。放置(“状态”,状态);
雇员。put(“工资类型”,工资类型);
employee.put(“工作代码”,工作代码);
employee.put(“shiftcode”,shiftcode);
Log.e(“值”,id+“”+firstname+“”+lastname);
//将员工添加到员工列表
emplist.add(雇员);
}
}捕获(JSONException e){
e、 printStackTrace();
}
}否则{
Log.e(“ServiceHandler”,“无法从url获取任何数据”);
}
返回null;
}
@凌驾
受保护的void onPostExecute(void结果){
super.onPostExecute(结果);
//关闭进度对话框
if(pDialog.isShowing())
pDialog.disclose();
}
}
}
从JSON中检索信息,将其放入POJO类中,将数组传递到自定义适配器(或将JSON直接传递到自定义ListView适配器)。有很多教程教你如何用数据填充列表视图,这是其中之一 你的listview在哪里?我在你的代码中没有看到它。别告诉我你没有试过