1

This is the code I'm working on:

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

StringEntity entity;
String var;

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

    callWebService();

    Button btn = (Button) findViewById (R.id.button1);

    btn.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            Intent i = new Intent(MainActivity.this, Test.class);
            startActivity(i);
        }
    });


}

public void callWebService() {

    try {

           // make web service connection
           HttpPost request = new HttpPost(SERVICE_URI + "/TestApplication");
           request.setHeader("Accept", "application/json");
           request.setHeader("Content-type", "application/json");
           // Build JSON string
           JSONStringer TestApp = new JSONStringer().object().key("id")
                        .value("1").key("name").value("manish").key("email")
                        .value("[email protected]").key("country")
                        .value("india").endObject();
           entity = new StringEntity(TestApp.toString());
           var = EntityUtils.toString(entity);

           Log.d("****Parameter Input****", "Testing:" + TestApp);
           request.setEntity(entity);
           // Send request to WCF service
           DefaultHttpClient httpClient = new DefaultHttpClient();
           HttpResponse response = httpClient.execute(request);

           Log.d("WebInvoke", "Saving: " + response.getStatusLine().toString());
           // Get the status of web service
           BufferedReader rd = new BufferedReader(new InputStreamReader(
                        response.getEntity().getContent()));
           // print status in log
           String line = "";
           while ((line = rd.readLine()) != null) {
                 Log.d("****Status Line***", "Webservice: " + line);
           }




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

  }

I want to display them on a listview. Do you have any tutorials to get me started with? I'm new to web services. Thanks.

2 Answers 2

2

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)

Sign up to request clarification or add additional context in comments.

Comments

0

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

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.