我想在GridView中显示我的JSON,在它之前..我在listview中显示了我的json,它工作了。但是在base adapter中,我不知道如何将我放入arraylist的json发送到baseadapter
这是我的源代码:
活动:

    public class MainActivity extends ListActivity {
    List AgenList = new ArrayList();
        boolean boolStatusKoneksi=true;
        private ProgressDialog Dialog;
        protected Context applicationContext;
        @Override
        public void onCreate(Bundle savedInstanceState){
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            new AgenAsyncTask().execute();
            GridView gridview = (GridView) findViewById(R.id.gridview);
            gridview.setAdapter(new AgenAdapter(this));
        }


    public class AgenAsyncTask extends AsyncTask<String, String, String>
    {

        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            Dialog = new ProgressDialog(MainActivity.this);
            Dialog.setMessage("Mohon Tunggu sebentar...");
            Dialog.setIndeterminate(false);
            Dialog.setCancelable(true);
            Dialog.show();
        }


        protected String doInBackground(String... args) {

                 String url = ("http:10.10.2/selectAgent.htm");

                  try{
                      JSONParser j=new JSONParser();
                        JSONArray jsonArray = j.takeJson(url);;

                      for(int i =0; i<jsonArray.length(); i++){
                          JSONObject c  = jsonArray.getJSONObject(i);


                            HashMap<String, String> map = new HashMap<String, String>();
                            if (c.has("atasan"))
                                map.put("atasan", c.get("atasan").toString());
                            if (c.has("nama_agen"))
                                map.put("nama_agen", c.get("nama_agen").toString());
                            if (c.has("kode_agen"))
                                map.put("kode_agen", c.get("kode_agen").toString());
                            if (c.has("no_aaji"))
                                map.put("no_aaji", c.get("no_aaji").toString());
                            if (c.has("jenis"))
                                map.put("jenis", c.get("jenis").toString());
                              AgenList.add(map);
                         }
                    } catch (JSONException e) {
                        e.printStackTrace();
                        }
                  return null;
                    }


        @Override
        protected void onPostExecute(String file_url) {

       }
   }

这是我的BaseAdapter:
    public class AgenAdapter extends BaseAdapter {

        public AgenAdapter(MainActivity mainActivity) {

        }

        @Override
        public int getCount() {
            // TODO Auto-generated method stub
            return 0;
        }

        @Override
        public Object getItem(int position) {
            // TODO Auto-generated method stub
            return null;
        }

        @Override
        public long getItemId(int position) {
            // TODO Auto-generated method stub
            return 0;
        }

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            LayoutInflater layout = getLayoutInflater();
            View view= layout.inflate(R.layout.list_item,parent,false);

            TextView ATASAN = (TextView) findViewById(R.id.atasan);
            TextView NAMA_AGEN= (TextView) findViewById(R.id.nama_agen);
            TextView KODE_AGEN= (TextView) findViewById(R.id.kode_agen);
            TextView NO_AAJI= (TextView) findViewById(R.id.no_aaji);
            TextView JENIS= (TextView) findViewById(R.id.jenis);
            return view;
        }
    }
}

如您所见,我有一个名为=agenlist的arraylist,但还没有将它放入baseadapter中。

最佳答案

创建一个参数化构造函数,并将数组列表传递到其参数中。所以你的班级

public class AgenAdapter extends BaseAdapter {
List<yourObj> list;
Activity a;
    public AgenAdapter(Activity activity,List<yourObj> list) {
       this.a=activity;
       this.list=list;

    }

    @Override
    public int getCount() {
        // TODO Auto-generated method stub
        return list.size();///////return size of list
    }

    @Override
    public Object getItem(int position) {
        // TODO Auto-generated method stub
        return position;///// dont return null here
    }

    @Override
    public long getItemId(int position) {
        // TODO Auto-generated method stub
        return position;/////////return position as itemID
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        LayoutInflater layout = getLayoutInflater();
        View view= layout.inflate(R.layout.list_item,parent,false);

        TextView ATASAN = (TextView) findViewById(R.id.atasan);
        TextView NAMA_AGEN= (TextView) findViewById(R.id.nama_agen);
        TextView KODE_AGEN= (TextView) findViewById(R.id.kode_agen);
        TextView NO_AAJI= (TextView) findViewById(R.id.no_aaji);
        TextView JENIS= (TextView) findViewById(R.id.jenis);
        return view;
    }
}

10-07 20:00
查看更多