Android 无法使用hasmap创建自定义列表

Android 无法使用hasmap创建自定义列表,android,adapter,Android,Adapter,已获取数据,但无法在Listview的自定义适配器上进行设置 可以在日志cat中看到数据,但设备上未显示列表活动。请帮我写这个代码谢谢 已获取数据,但无法在Listview的自定义适配器上进行设置 可以在日志cat中看到数据,但设备上未显示列表活动。请帮我编写此代码,谢谢您缺少几件事: 在getView内部。。。 convertView=充气机。充气机。布局。自定义_列表,父级; 应为充气器.充气器.layout.custom_list,空 @param root可选视图是生成的层次结构的父级。

已获取数据,但无法在Listview的自定义适配器上进行设置 可以在日志cat中看到数据,但设备上未显示列表活动。请帮我写这个代码谢谢

已获取数据,但无法在Listview的自定义适配器上进行设置
可以在日志cat中看到数据,但设备上未显示列表活动。请帮我编写此代码,谢谢

您缺少几件事:

在getView内部。。。 convertView=充气机。充气机。布局。自定义_列表,父级; 应为充气器.充气器.layout.custom_list,空

@param root可选视图是生成的层次结构的父级。 公共视图膨胀资源,视图组根

您必须在自定义适配器中重写getCount @凌驾 公共整数getCount{ 返回数据.size; }

其中data=newhashmap>; 此外,最好在自定义适配器的getView中重用单元格。为此,可以使用ViewHolder


如果没有帮助,请共享您的布局XML。

是否有任何错误日志?发布您的活动并上传xml。
package com.thesoft.smsdemo;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import android.R.integer;
import android.annotation.SuppressLint;
import android.app.ProgressDialog;
import android.content.Context;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import com.thesoft.smsdemo.JSONParser;

public class Upload extends ActionBarActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_upload);
        new Hi().execute();

    }


    private class Hi extends AsyncTask<String, Void, String> {
        ProgressDialog rDialog;
        JSONParser lv = new JSONParser();
        ListView vti ;
        public  HashMap<Integer, HashMap<String, String>> notes_data = new HashMap<Integer, HashMap<String, String>>();


        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            rDialog = new ProgressDialog(Upload.this);
            rDialog.setMessage("Fetching Data From Server..");
            rDialog.setIndeterminate(false);
            rDialog.setCancelable(false);
            rDialog.show();


        }

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


            List<NameValuePair> params = new ArrayList<NameValuePair>();

            params.add(new BasicNameValuePair("co_name", "All"));

            return lv.makeHttpRequest(
                            "+++++URL Link++++++++",
                            "GET", params);
        }

        @Override
        protected void onPostExecute(String result) {


            Log.d("value", result);

            String name = "", head = "", desb = "", date = "";
            JSONArray jsArray;
            try {

                jsArray = new JSONArray(result);
                Log.d("json arry", "" + jsArray.length());
                for (int j = 0; j < jsArray.length(); j++) {
                    HashMap<String, String> data = new HashMap<String, String>();
                    JSONObject jobj = jsArray.getJSONObject(j);
                    data.put("co_name", jobj.getString("co_name").toString());
                    data.put("head", jobj.getString("head").toString());
                    data.put("desb", jobj.getString("desb").toString());
                    data.put("date", jobj.getString("date").toString());
                    Log.d("valuesss",j+"");
                    notes_data.put(j, data);
                    Log.d("name",jobj.getString("co_name").toString());
                    Log.d("name",jobj.getString("head").toString());
                    Log.d("name",jobj.getString("date").toString());

                }

                /*String[] notes_da = {"hjhkh","hggg","hghgghgh"};
                for (int i = 0; i < notes_da.length; i++) {
                    notes_da[i] = "Notes " + i;
                    }*/

                MySimpleArrayAdapter mr = new MySimpleArrayAdapter(getApplicationContext(), notes_data);
/*              ArrayAdapter<String> adapter = new ArrayAdapter<String>(getApplicationContext(),R.layout.custom_list, R.id.tv, notes_da);
*/              vti=(ListView)findViewById(R.id.li1);
                vti.setAdapter(mr);
            } catch (JSONException e) {


                e.printStackTrace();
            } finally {

                rDialog.dismiss();


                Log.d("valuesss",notes_data.get(3).get("head"));
            }

        }

    }

    public class MySimpleArrayAdapter extends ArrayAdapter<String> {
        private final Context context;

        HashMap<Integer, HashMap<String, String>> data = new HashMap<Integer, HashMap<String, String>>();

        public MySimpleArrayAdapter(Context context, HashMap<Integer, HashMap<String, String>> data) {
            super(context, R.layout.custom_list);
            this.context = context;
            this.data = data;
        }

        @SuppressLint("ViewHolder")
        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            convertView = inflater
                    .inflate(R.layout.custom_list, parent);
            TextView textView = (TextView) convertView.findViewById(R.id.tv);
            TextView des = (TextView) convertView.findViewById(R.id.t2);
            TextView date = (TextView) convertView.findViewById(R.id.textView1);
            // change the icon for Windows and iPhone
            String head = data.get(position).get("head");
            String desb = data.get(position).get("desb");
            String date1 = data.get(position).get("date");

            textView.setText(head);
            des.setText(desb);
            date.setText(date1);


            return convertView;
        }

    }
    }