2014-04-10 33 views

回答

-1

轉到與此...

// JSON Node names 
    private static final String TAG_CONTACTS = "contacts"; 
    private static final String TAG_ID = "id"; 
    private static final String TAG_NAME = "name"; 
    private static final String TAG_EMAIL = "email"; 


if (jsonStr != null) { 
try { 
        JSONObject jsonObj = new JSONObject(jsonStr); 

        // Getting JSON Array node 
        contacts = jsonObj.getJSONArray(TAG_CONTACTS); 

        // looping through All Contacts 
        for (int i = 0; i < contacts.length(); i++) { 
         JSONObject c = contacts.getJSONObject(i); 

         String id = c.getString(TAG_ID); 
         String name = c.getString(TAG_NAME); 
         String email = c.getString(TAG_EMAIL); 

         // tmp hashmap for single contact 
         HashMap<String, String> contact = new HashMap<String, String>(); 

         // adding each child node to HashMap key => value 
         contact.put(TAG_ID, id); 
         contact.put(TAG_NAME, name); 
         contact.put(TAG_EMAIL, email); 

         // adding contact to contact list 
         contactList.add(contact); 
        } 
       } catch (JSONException e) { 
        e.printStackTrace(); 
       } 
      } else { 
       Log.e("ServiceHandler", "Couldn't get any data from the url"); 
      } 
+0

使用for循環,如果你有多個聯繫人.. – Akshay

+0

-1它只是流行的不好在線教程,代碼複製...發佈他人的代碼因爲我們沒有指出oryginal **是所謂的偷** – Selvin

+2

但它滿足了發問者要求哥們.. – Akshay

2

您需要首先得到JSON我假設你已經做了

{ // json object node 
    "contact": [ //json array contact 
     {  // json object node 

爲了解析

JSONObject jb = new JSONObject("your json"); 
JSONArray con = jb.getJSONArray("contact"); 
JSONObject contact = (JSONObject) con.getJSONObject(0); 
String id = contact.getString("id"); 
String name = contact.getString("name"); 
String id = contact.getString("id"); 
0
public class MainActivity extends Activity { 

    private ProgressDialog pdialog; 

    private static String url = "http://highspecificationservers.com/apk/webservice.php"; 

    private static final String TAG_STUDENT = "student"; 
    private static final String TAG_FNAME = "fname"; 
    private static final String TAG_EMAIL = "email"; 
    private static final String TAG_MOBILE = "mobile"; 

    JSONArray student = null; 

    ArrayList<HashMap<String, String>> studentlist; 

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

     studentlist = new ArrayList<HashMap<String, String>>(); 

     ListView lv = getListView(); 

     lv.setOnItemClickListener(new OnItemClickListener() { 

      @Override 
      public void onItemClick(AdapterView<?> parent, View view, 
        int position, long id) { 
       // TODO Auto-generated method stub 

       String fname = ((TextView) view.findViewById(R.id.fname)) 
         .getText().toString(); 
       String cost = ((TextView) view.findViewById(R.id.email)) 
         .getText().toString(); 
       String description = ((TextView) view.findViewById(R.id.mobile)) 
         .getText().toString(); 

       Intent in = new Intent(getApplicationContext(), 
         SingleContactActivity.class); 
       in.putExtra(TAG_FNAME, fname); 
       in.putExtra(TAG_EMAIL, cost); 
       in.putExtra(TAG_MOBILE, description); 
       startActivity(in); 

      } 
     }); 

     new GetStudent().execute(); 

    } 

    private class GetStudent extends AsyncTask<Void, Void, Void> { 

     @Override 
     protected void onPreExecute() { 
      // TODO Auto-generated method stub 
      super.onPreExecute(); 
      pdialog = new ProgressDialog(MainActivity.this); 
      pdialog.setMessage("please wait"); 
      pdialog.setCancelable(false); 
      pdialog.show(); 
     } 

     @Override 
     protected Void doInBackground(Void... arg0) { 
      // TODO Auto-generated method stub 

      ServiceHandler sh = new ServiceHandler(); 

      String jString = sh.makeServiceCall(url, ServiceHandler.GET); 

      Log.d("Response:", "> " + jString); 

      if (jString != null) { 
       try { 
        JSONObject Jsonobj = new JSONObject(jString); 

        student = Jsonobj.getJSONArray(TAG_STUDENT); 

        for (int i = 0; i < student.length(); i++) { 
         JSONObject c = student.getJSONObject(i); 
         String fname = c.getString(TAG_FNAME); 
         String email = c.getString(TAG_EMAIL); 
         String mobile = c.getString(TAG_MOBILE); 

         HashMap<String, String> student = new HashMap<String, String>(); 

         student.put(TAG_FNAME, fname); 
         student.put(TAG_EMAIL, email); 
         student.put(TAG_MOBILE, mobile); 

         studentlist.add(student); 
        } 
       } catch (JSONException e) { 
        e.printStackTrace(); 
       } 
      } else { 
       Log.e("ServiceHandler", "Couldn't get any data from the url"); 
      } 

      return null; 
     } 

     @Override 
     protected void onPostExecute(Void result) { 
      // TODO Auto-generated method stub 
      super.onPostExecute(result); 
      if (pdialog.isShowing()) 
       pdialog.dismiss(); 
      ListAdapter adapter = new SimpleAdapter(MainActivity.this, 
        studentlist, R.layout.list_item, new String[] { TAG_FNAME, 
          TAG_EMAIL, TAG_MOBILE }, new int[] { R.id.fname, 
          R.id.email, R.id.mobile }); 

      setListAdapter(adapter); 

     } 

     private void setListAdapter(ListAdapter adapter) { 
      // TODO Auto-generated method stub 

     } 

    } 

    private ListView getListView() { 
     // TODO Auto-generated method stub 
     return null; 
    } 

} 
+0

您能否僅發佈相關代碼?如果我已經正確理解它,那麼你已經包含了大量不必要的代碼。我看不到任何使用'loopj AsyncHttpClient'作爲請求者的請求。如果您提出了另一種實現此目的的方式,請說明以及解釋代碼。如果只有評論和解釋相關的代碼,你的答案會更有用(對於提問者和未來的讀者)。請相應地更新您的答案。 – kkuilla