Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/217.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在Expandale列表视图中绑定Json数据?_Java_Android_Json_Expandablelistview - Fatal编程技术网

Java 如何在Expandale列表视图中绑定Json数据?

Java 如何在Expandale列表视图中绑定Json数据?,java,android,json,expandablelistview,Java,Android,Json,Expandablelistview,我想将json数据绑定到Android中的可扩展列表视图。 显示以下错误 错误: Error:(175, 65) error: incompatible types: MainActivity.ExecuteTask cannot be converted to Context Json数据: [{"PART_ID":"01684.021","SHIFT_DATE":"20-SEP-17","PLAN_QTY":"2","ACTUAL_QTY":"2"}, {"PART_ID":"03

我想将json数据绑定到Android中的可扩展列表视图。 显示以下错误

错误:

Error:(175, 65) error: incompatible types: MainActivity.ExecuteTask cannot be converted to Context
Json数据:

    [{"PART_ID":"01684.021","SHIFT_DATE":"20-SEP-17","PLAN_QTY":"2","ACTUAL_QTY":"2"},
{"PART_ID":"0346001.020","SHIFT_DATE":"20-SEP-17","PLAN_QTY":"4","ACTUAL_QTY":"4"},
{"PART_ID":"01068.021","SHIFT_DATE":"20-SEP-17","PLAN_QTY":"7","ACTUAL_QTY":"7"}]
ExpandableListAdapter.java

package com.example.saravanakumars.expandable_listview;

import android.content.Context;
import android.graphics.Typeface;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseExpandableListAdapter;
import android.widget.TextView;
import java.util.HashMap;
import java.util.List;
/**
 * Created by saravanakumars on 10/3/2017.
 */

public class ExpandableListAdapter extends BaseExpandableListAdapter {
    private Context _context;
    private List<String> _listDataHeader; // header titles
    // child data in format of header title, child title
    private HashMap<String, List<String>> _listDataChild;

//    ArrayList<TerbaruModel>ListTerbaru;
//    ArrayList<ArrayList<ChildTerbaru>> ListChildTerbaru;
//    int count;
    public ExpandableListAdapter(Context context, List<String> listDataHeader,
                                 HashMap<String, List<String>> listChildData) {
        this._context = context;
        this._listDataHeader = listDataHeader;
        this._listDataChild = listChildData;
    }

    @Override
    public Object getChild(int groupPosition, int childPosititon) {
        return this._listDataChild.get(this._listDataHeader.get(groupPosition))
                .get(childPosititon);
    }

    @Override
    public long getChildId(int groupPosition, int childPosition) {
        return childPosition;
    }

    @Override
    public View getChildView(int groupPosition, final int childPosition,
                             boolean isLastChild, View convertView, ViewGroup parent) {

        final String childText = (String) getChild(groupPosition, childPosition);

        if (convertView == null) {
            LayoutInflater infalInflater = (LayoutInflater) this._context
                    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            convertView = infalInflater.inflate(R.layout.list_item, null);
        }

        TextView txtListChild = (TextView) convertView
                .findViewById(R.id.lblListItem);

        txtListChild.setText(childText);
        return convertView;
    }

    @Override
    public int getChildrenCount(int groupPosition) {
        return this._listDataChild.get(this._listDataHeader.get(groupPosition))
                .size();
    }

    @Override
    public Object getGroup(int groupPosition) {
        return this._listDataHeader.get(groupPosition);
    }

    @Override
    public int getGroupCount() {
        return this._listDataHeader.size();
    }

    @Override
    public long getGroupId(int groupPosition) {
        return groupPosition;
    }

    @Override
    public View getGroupView(int groupPosition, boolean isExpanded,
                             View convertView, ViewGroup parent) {
        String headerTitle = (String) getGroup(groupPosition);
        if (convertView == null) {
            LayoutInflater infalInflater = (LayoutInflater) this._context
                    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            convertView = infalInflater.inflate(R.layout.list_group, null);
        }

        TextView lblListHeader = (TextView) convertView
                .findViewById(R.id.lblListHeader);
        lblListHeader.setTypeface(null, Typeface.BOLD);
        lblListHeader.setText(headerTitle);

        return convertView;
    }

    @Override
    public boolean hasStableIds() {
        return false;
    }

    @Override
    public boolean isChildSelectable(int groupPosition, int childPosition) {
        return true;
    }
}
package com.example.saravanakumars.expandable_listview;
导入android.content.Context;
导入android.graphics.Typeface;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.BaseExpandableListAdapter;
导入android.widget.TextView;
导入java.util.HashMap;
导入java.util.List;
/**
*由saravanakumars于2017年10月3日创建。
*/
公共类ExpandableListAdapter扩展了BaseExpandableListAdapter{
私人语境(private Context)(私人语境);;
私有列表_listDataHeader;//头标题
//标题标题、子标题格式的子数据
私有HashMap_listDataChild;
//ArrayListterbaru;
//ArrayList ListChildTerbaru;
//整数计数;
公共ExpandableListAdapter(上下文、列表listDataHeader、,
HashMap listChildData){
这._context=context;
这。_listDataHeader=listDataHeader;
这。_listDataChild=listChildData;
}
@凌驾
公共对象getChild(int-groupPosition、int-ChildPosition){
返回此。_listDataChild.get(此。_listDataHeader.get(groupPosition))
.get(childpositionon);
}
@凌驾
公共长getChildId(int-groupPosition,int-childPosition){
返回子位置;
}
@凌驾
公共视图getChildView(int groupPosition,final int childPosition,
布尔值isLastChild、视图转换视图、视图组父级){
最终字符串childText=(字符串)getChild(groupPosition,childPosition);
if(convertView==null){
LayoutInflater infalInflater=(LayoutInflater)this.\u上下文
.getSystemService(上下文布局\充气机\服务);
convertView=infalInflater.充气(R.layout.list_项,空);
}
TextView txtListChild=(TextView)convertView
.findviewbyd(R.id.lblListItem);
setText(childText);
返回视图;
}
@凌驾
公共整数getChildrenCount(整数组位置){
返回此。_listDataChild.get(此。_listDataHeader.get(groupPosition))
.size();
}
@凌驾
公共对象getGroup(int-groupPosition){
返回此。\u listDataHeader.get(groupPosition);
}
@凌驾
public int getGroupCount(){
返回此值。_listDataHeader.size();
}
@凌驾
公共长getGroupId(int-groupPosition){
返回组位置;
}
@凌驾
公共视图getGroupView(int-groupPosition,布尔值isExpanded,
视图(视图、视图组父级){
字符串头文件=(字符串)getGroup(groupPosition);
if(convertView==null){
LayoutInflater infalInflater=(LayoutInflater)this.\u上下文
.getSystemService(上下文布局\充气机\服务);
convertView=infalInflater.充气(R.layout.list_组,空);
}
TextView lblistheader=(TextView)convertView
.findviewbyd(R.id.lblistheader);
lblListHeader.setTypeface(null,Typeface.BOLD);
lblListHeader.setText(标题);
返回视图;
}
@凌驾
公共布尔表ID(){
返回false;
}
@凌驾
公共布尔值isChildSelectable(int-groupPosition,int-childPosition){
返回true;
}
}
MainActivity.java

package com.example.saravanakumars.expandable_listview;

import android.app.ProgressDialog;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.ExpandableListView;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

public class MainActivity extends AppCompatActivity{

    ExpandableListAdapter listAdapter;
    ExpandableListView expListView;
    List<String> listDataHeader;
    HashMap<String, List<String>> listDataChild;


    String s1 = "CLASIFICACION";
    String s2 = "ONE PIECE";
    String s3 = "159-OP SHERIDAN";


    private String TAG = MainActivity.class.getSimpleName();
    private ProgressDialog pDialog;
    private static String url = "http://113.193.30.155/MobileService/MobileService.asmx/GetPartbyProcessFamilyModel";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

//        expListView = (ExpandableListView) findViewById(R.id.lvExp);
//
//        // preparing list data
//        prepareListData();
//
//        listAdapter = new ExpandableListAdapter(this, listDataHeader, listDataChild);
//
//        // setting list adapter
//        expListView.setAdapter(listAdapter);


        new ExecuteTask().execute(s1, s2, s3);


    }

    /*
     * Preparing the list data
//     */
//    private void prepareListData() {
//        listDataHeader = new ArrayList<String>();
//        listDataChild = new HashMap<String, List<String>>();
//
//        // Adding child data
//        listDataHeader.add("Defect");
//        listDataHeader.add("Production");
//        listDataHeader.add("Report");
//
//        // Adding child data
//        List<String> Defect = new ArrayList<String>();
//        Defect.add("Defect-1");
//        Defect.add("Defect-2");
//        Defect.add("Defect-3");
//        Defect.add("Defect-4");
//        Defect.add("Defect-5");
//
//
//        List<String> Production = new ArrayList<String>();
//        Production.add("Production-1");
//        Production.add("Production-2");
//        Production.add("Production-3");
//        Production.add("Production-4");
//        Production.add("Production-5");
//
//
//        List<String> Report = new ArrayList<String>();
//        Report.add("Report-1");
//        Report.add("Report-2");
//        Report.add("Report-3");
//        Report.add("Report-4");
//        Report.add("Report-5");
//
//        listDataChild.put(listDataHeader.get(0), Defect); // Header, Child data
//        listDataChild.put(listDataHeader.get(1), Production);
//        listDataChild.put(listDataHeader.get(2), Report);
//    }

    class ExecuteTask extends AsyncTask<String, Integer, String> {

        @Override
        protected String doInBackground(String... params) {

            String res = PostData(params);

            return res;

        }

        @Override
        protected void onPostExecute(String result) {
            super.onPostExecute(result);
//                Toast.makeText(getApplicationContext(),
//                        result,Toast.LENGTH_LONG)
//                        .show();

            fetchResponse(result.replace("\n", "").trim());
            pDialog.dismiss();

        }

        private void fetchResponse(String result) {
            if (!result.equals("")) {
                try {
                    JSONArray jsonArray = new JSONArray(result);

                    expListView = (ExpandableListView) findViewById(R.id.lvExp);

                    listDataHeader = new ArrayList<String>();
                    listDataChild = new HashMap<String, List<String>>();

                    // Adding child data
                    listDataHeader.add("SHIFT_DATE");
                    listDataHeader.add("PART_ID");
                    listDataHeader.add("PLAN_QTY");

                    // Adding child data
                    List<String> SHIFT_DATE = new ArrayList<String>();
                    for (int i = 0; i < jsonArray.length(); i++) {

                        JSONObject jsonObject = jsonArray.getJSONObject(i);
                        jsonObject = jsonArray.getJSONObject(i);
                        SHIFT_DATE.add(jsonObject.getString("SHIFT_DATE"));
                    }

                    List<String> PART_ID = new ArrayList<String>();
                    for (int i = 0; i < jsonArray.length(); i++) {

                        JSONObject jsonObject1 = jsonArray.getJSONObject(i);
                        jsonObject1 = jsonArray.getJSONObject(i);
                        PART_ID.add(jsonObject1.getString("PART_ID"));
                    }


                    List<String> PLAN_QTY = new ArrayList<String>();
                    for (int i = 0; i < jsonArray.length(); i++) {

                        JSONObject jsonObject2 = jsonArray.getJSONObject(i);
                        jsonObject2 = jsonArray.getJSONObject(i);
                        PLAN_QTY.add(jsonObject2.getString("PLAN_QTY"));
                    }

                    listDataChild.put(listDataHeader.get(0), SHIFT_DATE); // Header, Child data
                    listDataChild.put(listDataHeader.get(1), PART_ID);
                    listDataChild.put(listDataHeader.get(2), PLAN_QTY);

//
                        listAdapter = new ExpandableListAdapter(this, listDataHeader, listDataChild);

                    // setting list adapter
                    expListView.setAdapter(listAdapter);

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


        public String PostData(String[] valuse) {
            String s = "";
            try {
                HttpClient httpClient = new DefaultHttpClient();
                HttpPost httpPost = new HttpPost("http://113.193.30.155/MobileService/MobileService.asmx/GetPartbyProcessFamilyModel");

                List<BasicNameValuePair> list = new ArrayList<BasicNameValuePair>();
                list.add(new BasicNameValuePair("strProcess", s1));
                list.add(new BasicNameValuePair("strFamily", s2));
                list.add(new BasicNameValuePair("strModel", s3));
                httpPost.setEntity(new UrlEncodedFormEntity(list));
                HttpResponse httpResponse = httpClient.execute(httpPost);

                HttpEntity httpEntity = httpResponse.getEntity();

                s = readResponse(httpResponse);

//            HttpEntity entity = httpResponse.getEntity();
//
//            s = EntityUtils.toString(entity);

            } catch (Exception exception) {
            }
            return s;


        }

        public String readResponse(HttpResponse res) {
            InputStream is = null;
            String return_text = "";
            try {
                is = res.getEntity().getContent();
                BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(is));
                String line = "";
                StringBuffer sb = new StringBuffer();
                while ((line = bufferedReader.readLine()) != null) {
                    sb.append(line);
                }
                return_text = sb.toString();
            } catch (Exception e) {

            }
            return return_text;

        }

    }
}
package com.example.saravanakumars.expandable_listview;
导入android.app.ProgressDialog;
导入android.os.AsyncTask;
导入android.os.Bundle;
导入android.support.v7.app.AppActivity;
导入android.widget.ExpandableListView;
导入org.apache.http.HttpEntity;
导入org.apache.http.HttpResponse;
导入org.apache.http.client.HttpClient;
导入org.apache.http.client.entity.UrlEncodedFormEntity;
导入org.apache.http.client.methods.HttpPost;
导入org.apache.http.impl.client.DefaultHttpClient;
导入org.apache.http.message.BasicNameValuePair;
导入org.json.JSONArray;
导入org.json.JSONException;
导入org.json.JSONObject;
导入java.io.BufferedReader;
导入java.io.InputStream;
导入java.io.InputStreamReader;
导入java.util.ArrayList;
导入java.util.HashMap;
导入java.util.List;
公共类MainActivity扩展了AppCompatActivity{
可扩展列表适配器;
ExpandableListView解释视图;
列表列表数据头;
HashMapListDataChild;
字符串s1=“CLASIFICACION”;
字符串s2=“一件”;
字符串s3=“159-OP SHERIDAN”;
私有字符串标记=MainActivity.class.getSimpleName();
私人对话;
专用静态字符串url=”http://113.193.30.155/MobileService/MobileService.asmx/GetPartbyProcessFamilyModel";
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//expListView=(ExpandableListView)findViewById(R.id.lvExp);
//
////准备列表数据
//prepareListData();
//
//listAdapter=新的ExpandableListAdapter(此,listDataHeader,listDataChild);
//
////设置列表适配器
//expListView.setAdapter(listAdapter);
新的ExecuteTask().execute(s1、s2、s3);
}
/*
*准备列表数据
//     */
//私有void prepareListData(){
//listDataHeader=新的ArrayList();
//listDataChild=newHashMap();
//
////添加子数据
//添加(“缺陷”);
//添加(“生产”);
//添加(“报告”);
//
////添加子数据
//列表缺陷=新的ArrayList();
//缺陷。添加(“缺陷-1”);
//缺陷。添加(“缺陷-2”);
//缺陷。
listAdapter = new ExpandableListAdapter(this,listDataHeader,listDataChild);
   listAdapter = new ExpandableListAdapter(MainActivity.this, listDataHeader, listDataChild);