2016-04-18 5 views
0

Ich muss die JSON-Daten von ListView an die nächste Aktivität beim Klicken auf Zeilenelement übergeben.Übergeben von JSON-Daten von ListView an die nächste Aktivität beim Klicken auf Zeilenelement

hier ist meine erste Aktivität

public class DrSearch extends Activity implements OnClickListener, 
    OnItemClickListener { 
    ListView listView; 

    ArrayList<RowItem> rowDoctors; 

    DrSearchListViewAdapter adapter; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_dr_search); 

     iv.setOnClickListener(this); 
     rowDoctors = new ArrayList<RowItem>(); 
     new DoctorList().execute(); 

     listView = (ListView) findViewById(R.id.list1); 
     adapter = new DrSearchListViewAdapter(getApplicationContext(), R.layout.single_list_dr_search, rowDoctors); 
     listView.setAdapter(adapter); 
     listView.setOnItemClickListener(this); 

    } 

    @Override 
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
     int actualDataPosition=adapter.getActualPosition(position, rowDoctors); 


     if(actualDataPosition>=0) 
     { 
      String data=rowDoctors.get(actualDataPosition).getId()+","+rowDoctors.get(actualDataPosition).getImageId()+","+rowDoctors.get(actualDataPosition).getTitle(); 

      Intent newActivity = new Intent(DrSearch.this, DocProfileForUser.class); 

      newActivity.putExtra("Position", actualDataPosition); 
      newActivity.putExtra("data", data); 
      startActivity(newActivity); 
     } 

    } 

    } 
    class DoctorList extends AsyncTask<String, Void, Void> { 

     private final HttpClient Client = new DefaultHttpClient(); 
     private String Content; 
     private String Error = null; 
     private ProgressDialog Dialog = new ProgressDialog(DrSearch.this); 
     String data = ""; 

     protected void onPreExecute() { 
      // TODO Auto-generated method stub 
      Dialog.setMessage("Please wait.."); 
      Dialog.show(); 
     } 

     protected Void doInBackground(String... urls) { 




      // To retrieve value from shared preference in another activity 
      SharedPreferences sp = getApplicationContext() 

        .getSharedPreferences("sharedPrefName", 0); 

      String user_id = sp.getString("key_name", "defaultvalue"); 

      List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(); 
      nameValuePairs.add(new BasicNameValuePair("access_token", 
        "testermanishrahul234142test")); 
      nameValuePairs.add(new BasicNameValuePair("user_id", user_id)); 

      Content = new ServiceHandler().makeServiceCall(
        AppConstant.GET_DOCTOR_LIST, 2, nameValuePairs); 
      return null; 

     } 

     protected void onPostExecute(Void result) { 
      // TODO Auto-generated method stub 
      Dialog.dismiss(); 



      String OutputData = ""; 
      JSONObject jsonResponse; 

      try { 


       jsonResponse = new JSONObject(Content); 


       JSONObject jsonMainNode = jsonResponse 
         .getJSONObject("document"); 

       JSONObject response = jsonMainNode.getJSONObject("response"); 

       JSONArray jarray = response.getJSONArray("data"); 

       for (int i = 0; i < jarray.length(); i++) { 
        JSONObject object = jarray.getJSONObject(i); 

        RowItem list = new RowItem(); 

        list.setAvailability(object.getString("morning_appointment_start")); 
        list.setAvailability1(object.getString("morning_appointment_end")); 
        list.setAvailability2(object.getString("eve_appointment_start")); 
        list.setAvailability3(object.getString("eve_appointment_end")); 
        list.setTitle(object.getString("firstName")); 
        list.setSpeciality(object.getString("speciality")); 
        list.setImageId(object.getString("image")); 
        list.setId(object.getString("id")); 

        rowDoctors.add(list); 


       } 


       String status = response.getString("status"); 
       if (status != null && status.equalsIgnoreCase("1")) { 
       } 
       String message = response.getString("message"); 

       Toast.makeText(getApplicationContext(), 
         "" + status + ":" + message, Toast.LENGTH_SHORT).show(); 





      } catch (JSONException e) { 

       e.printStackTrace(); 
      } 




     } 
    } 


} 
+0

so was ist das Problem? –

+0

Was ist der Fehler? –

+0

wie Sie dies in der zweiten Aktivität einstellen –

Antwort

0

Geben von Daten:

Intent newActivity = new Intent(DrSearch.this, DocProfileForUser.class); 
     newActivity.putExtra("data", data); 
     startActivity(newActivity); 

Empfangen von Daten in der zweiten Aktivität:

String dataString; 
    Bundle extras = getIntent().getExtras(); 
     if(extras != null) { 
     dataString= extras.getString("data"); 
     } 

TextView tvData = (TextView) findViewById(R.id.tv_data); 
tvData.setText(dataString); 
+0

und wie Sie Daten in TextView und ImageView in der zweiten Aktivität setzen –

+0

Müssen Sie so versuchen {position = getIntent(). GetIntExtra ("Position", 0); data = getIntent(). getStringExtra ("Daten"); if (data.contains (",")) {String actualDataPosition; String [] userData = data.split (rowDoctors.get (actualDataPosition) .getTitle() ","); for (Zeichenfolge item: userData) {System.out.println ("item =" + item); }}} wie er in meinem Post sagte, lesen Sie es @ AsimKrishnaDas –

+0

@ Asim Krishna Das Herr mit Ihrer Antwort, es setzt ganze URL auf die Textansicht –

0

Ihre Daten zu JSON-Format konvertieren und dann senden zweite Aktivität wie folgt:

String data = "{'id : '"+rowDoctors.get(actualDataPosition).getId()+"', 'image_id':'"+rowDoctors.get(actualDataPosition).getImageId()+"', 'title':'"+rowDoctors.get(actualDataPosition).getTitle()+"'}"; 

Intent newActivity = new Intent(DrSearch.this, DocProfileForUser.class); 
newActivity.putExtra("data", data); 
startActivity(newActivity); 

von der zweiten Aktivität wie das Holen Sie sich das JsonObject zurück:

String data; 
Bundle extras = getIntent().getExtras(); 
if(extras != null) { 
data= extras.getString("data"); 
} 

JSONObject jsonObj = new JSONObject(data); 
+0

danke für die Beantwortung. Ich versuche. –

+0

das ist meine json { "Dokument": { "Antwort": { "data": [ { "id": "4", "firstname": "Adam" "Bild": " http://69.73.184.155/~isoft/doctorApp/web_serv/uploads/doctor/1456375493img1.jpg“ "doctor_id": "4" }, { "id": "8" "firstname" : "Dr. Mark", "lastName": "Markieren", "image": "http://69.73.184.155/~isoft/doctorApp/web_serv/uploads/doctor/145451353012606908_101564904465653353_535014725_n.jpg" "doctor_id": "8" } –

+0

Ihre Lösung setzt alle Felder auf die Textansicht –

Verwandte Themen