2013-01-18 24 views
8

i aşağıda koduna sahip listview adaptör pozisyonundan nesne değerini almak için: Ben MyLog içinde LogCat üzerinde log bakarsakadaptör pozisyonundan değerini almak nasıl

CategoriesXmlParser categoryXmlParser = new CategoriesXmlParser(); 
List<HashMap<String, Object>> categories = null; 

try { 
    categories = categoryXmlParser.parse(reader); 
} catch (Exception e) { 
    Log.d("Exception", e.toString()); 
} 

String[] from = { "name", "image" }; 
int[] to = { R.id.nama_category, R.id.logo_category }; 

final SimpleAdapter adapter = new SimpleAdapter(getBaseContext(), 
        categories, R.layout.per_item_category, from, to); 

mListView.setOnItemClickListener(new OnItemClickListener() { 
    public void onItemClick(AdapterView<?> parent, View view, 
         int position, long id) { 
    Object obj = mListView.getAdapter().getItem(position); 
    String value = obj.toString(); 
    Log.d("MyLog", "Value is: "+value); 
    String name = // how code to get name value. 
    } 
}); 

Ben olsun:

değer: {konum = 12, IMAGE_PATH = http://192.168.103.121/xml/icon.png, bağlantı = http://192.168.103.121/xml/category.php?kat_id=13, isim = Kategori 13}

Sorularım, adından değer almak ve değişken Dize adıyla saklamak istiyorum, sadece String adına "Kategori 13" almak istiyorum. Çünkü onu başka bir aktiviteye geçirmek istiyorum.

+0

Peki, bağdaştırıcınızı hangi nesne türüyle doldurursunuz? Bunun için 'getItem() 'ın sonucunu basitçe yazabilir ve daha sonra' isim' alanına ait değeri almak için uyguladığınız her hangi bir erişim aracını kullanabilirsiniz. –

cevap

31

Nesneyi hashmap ile yaptığınız gibi, blablabla.put ("name", "value") gibi görünüyor? Eğer evetse. Bu deneyin:

mListView.setOnItemClickListener(new OnItemClickListener() { 
    public void onItemClick(AdapterView<?> parent, View view, 
      int position, long id) { 
     Object obj = mListView.getAdapter().getItem(position); 
     String value = obj.toString(); 
     Log.d("MyLog", "Value is: "+value); 
     String name = // how code to get name value. 
    } 
}); 

Değiştir:

mListView.setOnItemClickListener(new OnItemClickListener() { 
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
     HashMap<String, Object> obj = (HashMap<String, Object>) adapter.getItem(position); 
      String name = (String) obj.get("name"); 
      Log.d("Yourtag", name); 
    } 
}); 
+1

Teşekkürler Andi Unpam. Dinamik veri için bu çalışma. bu yüzden sadece öğe aldım. evet iyi hashmap kullanır. aslında bu kullandığım başka bir koddan. Artık bir bilim ekleyerek sona erdi ishmap. Teşekkürler ... –

+1

çalışıyor! thx –

+0

müthiş cevap .. –

6
value = value.substring(value.indexOf("name=")+5,value.length()-1); 
+1

düzeltme değeri = değer.substring (value.indexOf ("name =") + 5, value.length() - 1); – Pragnani

+0

Tamam, çözüldü, sugandha, Pragnani ve RobinHood için teşekkürler. benim problemim düzeltme Pragni ile çözüldü, son dizede daha önce var}. Tamam teşekkürler. –

+0

Sorumu +5 nedir? Bu işlevin geleceğini biliyorum. Teşekkürler –

0

Ayrıca AdapterView<?> parent

@Override 
public void onViewCreated(View view, Bundle savedInstanceState) { 
    super.onViewCreated(view, savedInstanceState); 
    //setHasOptionsMenu(true); 
    listView.setOnItemClickListener(new OnItemClickListener() { 
     public void onItemClick(AdapterView<?> parent, View view, 
       int position, long id) { 

      final Filedata mnotes = (Filedata) parent 
        .getItemAtPosition(position); 
      Toast.makeText(getActivity(), Filedata.getName(),Toast.LENGTH_SHORT).show(); 
}); 
} 
2
listID.setOnItemClickListener(new AdapterView.OnItemClickListener() 
       { 

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

         Object obj=listID.getAdapter().getItem(position); 
         String str=obj.toString(); 

        Toast.makeText(MainActivity.this, "Item is= "+str, Toast.LENGTH_LONG).show(); 
        } 
       }); 
+0

Hey arkadaşlar bu kodu almak için size yardımcı olabilir –

+0

Listede orijinal kimliği almanın bir yolu var mı? Tek istediğim, dizideki şeyin adı. Şimdiden teşekkürler – Riekelt

0

Bu yoluyla adaptör veri alabilir ne yaptım: -

lvHomePage.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
        @Override 
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
         Transaction selectedFromList =(Transaction)parent.getAdapter().getItem(position); 
         Log.d("val:",selectedFromList.getDate()); 
         Log.d("val:",selectedFromList.getMobile_no()); 
        } 
       }); 

İyi eğlenceler!

İlgili konular