2016-03-27 9 views
0

Lütfen çoğaltmayın.Listeden bir öğe nasıl alınır? Tıklama dinleyicisinden sonra görüntüleBu resmi aç

Herkese merhaba ... Bu soruyu daha önce sordum ama kimse benim problemimi çözmüyor. İşte benim sorunum: Arama işlemini gerçekleştirmek istiyorum. Hangi veriler veritabanından alınacak ve listView'de gösterilecektir. Bir kullanıcı adını tıkladıktan sonra kullanıcı kimliğini Profilini göstermek için ikinci etkinliğe geçirecektir. Veriler kullanıcı kimliği, kullanıcı adı, cinsiyet ve adresi içerir, ancak yalnızca bir öğe userID ikinci etkinliğe geçirilir. Çok fazla öğretici aradım ama böyle bir şey bulamadım.

Tekrar tekrar ediyorum, lütfen çoğaltmayın. İşte

benim kodudur:

listView.setAdapter(adapterSearchElements); 

    adapterSearchElements = new AdapterSearchElements(this, R.layout.searchresultcutomrow); 
    listView.setAdapter(adapterSearchElements); 
    json_string = getIntent().getExtras().getString("json_data"); 

    try { 
     jsonObject = new JSONObject(json_string); 
     jsonArray = jsonObject.getJSONArray("server_response"); 

     int count = 0; 
     for (int k = 0; k < jsonArray.length(); k++) { 
      // while (count < jsonArray.length()) { 
      // JSONObject JO = jsonArray.getJSONObject(count); 

      JSONObject JO = jsonArray.getJSONObject(Integer.parseInt(String.valueOf(k))); 

      user_id = JO.getString("user_id"); 
      name = JO.getString("name"); 
      Gender = JO.getString("Gender"); 
      address = JO.getString("address"); 
      final SearchResultsElements searchResultsElements = new SearchResultsElements(user_id,name, Gender, address); 
      adapterSearchElements.add(searchResultsElements); 

      listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
       public void onItemClick(AdapterView<?> parent, View view, 
             int position, long id) { 

       // String userid=searchResultsElements.getUser_id(); 

        // final String item = (String)parent.getItemIdAtPosition(position); 


        Intent i = new Intent(DisplaySearchResults.this, FriendsProfile.class); 

        i.putExtra("user_id", user_id); 
        startActivity(i); 
       } 
      }); 
      // count++; 

     } 

    } catch (JSONException e) { 
     e.printStackTrace(); 
    } 
+0

Tam olarak hangi kısımda sorun yaşıyorsunuz? Sadece yeni kullanıcı etkinliğine geçmek için doğru kullanıcı kimliğinin nasıl alınacağını veya "ListView" ın da düzgün görüntülenmediğini mi belirliyor? –

+0

listView doğru görüntüleniyor ancak seçili kullanıcı kimliğini ikinci etkinliğe adının veya adresinin değil, sadece userID – Bebo

+0

numarasına aktarmak istiyorum. Seçili kullanıcı kimliğini bir listeden nasıl alacağımı öğrenmek istiyorum ve bunu ikinci etkinliğe aktarıyorum @GeorgeMulligan – Bebo

cevap

0

Yalnızca aşağıdaki gibi listView.setOnItemClickListener() callback'inde geçirilen pozisyonda SearchResultsElements bakmak gerekir:

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
    public void onItemClick(AdapterView<?> parent, View view, 
          int position, long id) { 

     SearchResultsElements selectedSearchResultsElements = adapterSearchElements.getItem(position); 
     Intent i = new Intent(DisplaySearchResults.this, FriendsProfile.class); 

     i.putExtra("user_id", selectedSearchResultsElements.getUser_id()); 
     startActivity(i); 
    } 
}); 

burada adaptör kullanılan bakmak Öğeyi kapatın. Döndürülen nesneyi doğru türe gönderirseniz, listView.getItemAtPosition(position);'u da kullanabilirsiniz.

+0

Teşekkür ederiz çok fazla . şuan çalışıyor . Sanırım burada kimse doğru cevabı bilmez ama sen ... inanılmaz @George Mulligan – Bebo

0

Öğelerinizi bir veritabanından alırsanız, CursorAdapter kullanmayı düşünün.

İlgili konular