2011-07-29 11 views
1

나는 썸네일과 텍스트의 목록보기가 있습니다. 각 목록 항목에 onClicklistner를 추가하는 방법을 알아 내려고 노력 중이므로 사용자가 텍스트 나 미리보기 이미지를 선택하면 전체 이미지가 나타납니다. 다음은 내 목록 개체 및 어댑터와 lazyAdapter 코드입니다.목록보기 항목에 onClickListener 추가

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

OnItemClickListenermStringsmImages을 사용할 수 있습니다. 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); 
    } 
} 
2

AdapterView.OnItemClickListener을 구현하는 데 어떤 도움이 될 수 있습니다.

자세한 내용은 여기 http://developer.android.com/guide/topics/ui/binding.html에서 확인할 수 있습니다.

참고 이것은 ListView의 각 행에 사용되며 각 행의 개별 TextView 또는 ImageView에는 사용되지 않습니다.