android display json object to listview

后端 未结 2 923
悲&欢浪女
悲&欢浪女 2021-01-16 08:38

This is the code I\'m working on:

   private final static String SERVICE_URI = \"http://restwebservice.com/test/Service.svc\";

StringEntity entity;
String          


        
相关标签:
2条回答
  • 2021-01-16 09:10

    One of the most popular tutirials on list views which may help you:

    -Ravi's blog

    Steps to follow after parsing your json:

     1. Map your json objects to pojo.
     2. Store your pojo in an array list if many are there.
     3. Create a list view with a custom adapter.
     4. update your listview with answer from the pojo's that you have mapped with
        notifyDatasetChanged
    

    You can use jackson library to parse json with one line of code.

     //1. Convert Java object to JSON format
     ObjectMapper mapper = new ObjectMapper();
     mapper.writeValue(new File("c:\\user.json"), user);
    
     //2. Convert JSON to Java object
     ObjectMapper mapper = new ObjectMapper();
     User user = mapper.readValue(new File("c:\\user.json"), User.class);
    

    (follow this link for more on object mapping tutorial)

    0 讨论(0)
  • 2021-01-16 09:19

    this is what i did to generate listview from my json response, basically i wrote values from my jon response to adapter and set it to my list view

    try{
            jArray = new JSONArray(result);
            for(int i=0;i<jArray.length();i++){
                    json_data = jArray.getJSONObject(i);
    
                    Log.i("log_tag","dealid: "+json_data.getString("deal_id")+
                            ", hotel name: "+json_data.getString("hotel_name")+
                            ", location: "+json_data.getString("location")+
                            ", website: "+json_data.getString("website")
                    );
    
            }
    
            json_data=new JSONObject();
            String[] data=new String[jArray.length()];
            planetList = new ArrayList<String>();
                for(int i=0;i<jArray.length();i++)
                {
                    json_data= jArray.getJSONObject(i);
                    data[i]=json_data.getString("deal_id");
                    Log.i("log_tag", "string "+data[i]);
                    planetList.addAll( Arrays.asList("Deal "+ (i+1)));  
                    listAdapter = new ArrayAdapter<String>(this, R.layout.listrow, planetList);
                    runOnUiThread(new Runnable() {
                        public void run() {
                            list.setAdapter(listAdapter);
                        }
                    });
                 }
                list.setOnItemClickListener(new OnItemClickListener() {  //where to put this piece of code???
    
                    public void onItemClick(AdapterView<?> arg0, View arg1,
                            final int arg2, long arg3) {
    
                    Intent intent = new Intent(context,Finaldeal.class);  
                    intent.putExtra("deal", json_data.toString());
                    startActivity(intent);                                     
                    }
    
                }); 
    
    }
    catch(JSONException e){
            Log.e("log_tag", "Error parsing data "+e.toString());
    }
    

    you can also refer to question i asked here

    passing JSON object to another activity on list item click

    0 讨论(0)
提交回复
热议问题