2017-04-10 30 views
-2
  • 點擊我有一個的ListView lvResults
  • 我有一個自定義ArrayAdapter我爲ListView註冊:如何獲得元素列表視圖(安卓)

    lvResults.setAdapter(arrayadapter);

  • 該適配器包含4個元素,最後一個是圖標。

  • 該適配器有一個public View getView(int position, View convertView, ViewGroup parent)方法,我爲每一行創建視圖。

行看起來像這樣的結尾: enter image description here

我怎樣才能確定是否圖像(worldicon)被點擊?

我開始在onItemClick方法嘗試這一點,但我不知道:

lvResults.setOnItemClickListener(new OnItemClickListener() { 

    @Override 
    public void onItemClick(AdapterView<?> adapter, View v, int position, long id) { 
    } 

}); 

有人能幫忙嗎?

+0

PLZ不給他建議 –

+0

多謝拉溫德拉之前反對票提問的問題。對我來說是不可理解的,爲什麼他們倒下了。請downvoters,請辯論你爲什麼downvoted。 –

+0

可能是倒票比給出答案容易得多:P –

回答

3

getView()方法中的自定義適配器中,使用Holder並將onClickLister設置爲您的ImageView。試試下面的代碼:

public class Holder 
{ 
    ImageView world; 
} 
@Override 
public View getView(final int position, View convertView, ViewGroup parent) { 
    // TODO Auto-generated method stub 
    final Holder holder=new Holder(); 
    View rowView;  
     rowView = inflater.inflate(R.layout.single_row, null); 
     holder.world = (ImageView) rowView.findViewById(R.id.world_icon); 

    holder.world.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
       // do your onClick action here 
     } 
    });  

    return rowView; 
} 

希望這會有所幫助。

+0

upvoted。你的回答是提前4分鐘,你是對的。抱歉。 –

0

如果你想添加onclick監聽器世界圖標。在自定義適配器本身中,您需要將onclick監聽器添加到世界圖標的imageview。您可以將id或標記提供給imageview以確定哪個世界圖標被點擊。

2

在您的陣列適配器上添加onclick監聽器以訪問該imageview。 itemview點擊監聽器無法識別項目中的每個單獨元素。

public View getView(final int position, View convertView, ViewGroup parent) { 
     ViewHolder holder = new ViewHolder(); 

      convertView = layoutInflater.inflate(layout.your_layout,null); 
      holder.worldImage = (ImageView) convertView.findViewById(id.world_image); 
holder.worldImage.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
      // perform necessary action 
      } 
     }); 
+0

謝謝。爲了通知相應的活動,我必須先在適配器中設置活動。謝謝你的幫助。 –

+0

對不起Faa。剛剛意識到,Tahsinrupan更早。但仍然upvoted :-) –

+0

其確定....... :) –