2011-07-29 83 views
1

我有一個縮略圖和文字相鄰的列表視圖。 我想弄清楚如何將onClicklistner添加到每個列表項,以便當用戶選擇文本或縮略圖時,將會彈出完整的圖像。下面是我的列表對象和適配器以及lazyAdapter代碼。Add onClickListener to listview item

MainActivity:

list=(ListView)findViewById(R.id.list); 
adapter=new LazyAdapter(this, mStrings, mImages); 
list.setAdapter(adapter); 

LazyAdapter:

public View getView(int position, View convertView, ViewGroup parent) { 
     View vi=convertView; 
     if(convertView==null) 
      vi = inflater.inflate(R.layout.item, null); 

    TextView text=(TextView)vi.findViewById(R.id.text);; 
    ImageView image=(ImageView)vi.findViewById(R.id.image); 
    text.setText(image_name[position]); 
    imageLoader.DisplayImage(data[position], activity, image); 
    return vi; 
} 

編輯 這是我最終使用。

   list.setOnItemClickListener(new OnItemClickListener() { 
        public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3){ 
         Toast.makeText(MainActivity.this, "Show Full Image", Toast.LENGTH_LONG).show(); 
        } 
       }); 
+0

是否有一個特定的原因,你想註冊監聽每個**項目? – user802421

回答

4

您可以在OnItemClickListener中使用mStringsmImages。從你的LazyAdapter假設他們是數組。也許你可以嘗試這樣的事情。

list.setOnItemClickListener(new OnItemClickListener() { 
    public void onItemClick(AdapterView<?> parent, View v, int position, long id) { 
     String text = mStrings[position]; 
     YourImageClass img = mImages[position]; 
     Intent i = new Intent(MainActivity.this, ShowFullImageActivity.class); 
     i.putExtra("TEXT", text); 
     i.putExtra("IMAGE", img); // <-- Assumed you image is Parcelable 
     startActivity(i); 
    } 
}