2011-04-19 106 views
2

在我的ListView中,每個項目由ImageView和TextView組成。 我想要點擊圖像 - 獲取itemid(然後在對話框中顯示圖像)。ListView。獲取itemId點擊imageView

如何捕捉點擊ImageView並獲取ListItem的Id?

enter image description here

ImageView image; 

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

      contactsList=(ListView)findViewById(android.R.id.list); 
      contactsList.setOnItemClickListener(clickListener); 

      image = (ImageView)findViewById(R.id.image_a); 
      image.setOnClickListener(imListener); 

     } 

     OnItemClickListener clickListener = new OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long itemId) {    
      Toast.makeText(getApplicationContext(), "listItem " + itemId, Toast.LENGTH_SHORT).show(); 

      } 
     }; 

     OnClickListener imListener = new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
        Toast.makeText(getApplicationContext(), "Image of listItem ", Toast.LENGTH_SHORT).show(); 

      } 
     }; 
+0

您需要接受工作了你,讓你下次提問時的回答 - 人們不要猶豫,發佈的答案! – 2011-04-20 03:18:52

+0

你有沒有任何想法如何獲得在列表中顯示元素的ID,而不點擊? – CoDe 2013-01-31 11:26:40

+0

你會在下面的鏈接中找到答案。 試試看: http://stackoverflow.com/a/14939376/1263588 – 2013-02-18 15:14:39

回答

1

你並不真的需要兩個Listeners

但是,如果您仍然堅持,您的代碼在您的代碼中正確點擊 - 您的onItemClick()方法的arg2參數將爲您提供該項目的位置。如果您將所有圖像標識存儲在ArrayList中,則可以使用imageArray[position]檢索單擊的圖像。

這裏有一些指針:

Custom List Row

Handling onItemClick