2011-11-30 45 views
0

我有一個列表視圖與圖像視圖和線性佈局中的文本。我想在用戶點擊圖像視圖和文本視圖時執行不同的操作。我已經嘗試了onItemClickListener,但是它捕獲整個線性佈局。我在自定義適配器中嘗試了onClickListener,但無法獲得它的位置。如何捕獲列表項中不同視圖上的點擊事件?

我該如何解決這個問題?

回答

0

這裏im分享我的code.i在每個列表項中有三個Textviews,其中一個我放置了一個listener.This代碼僅供參考。從下面的代碼學習U可以將監聽器放在不同的列表項目中。現在我希望你可以編寫你想要的代碼。

static class ViewHolder { 
    public TextView tv1,tv2,tv3; 

     } 

@Override 
public View getView(final int position, View convertView, ViewGroup parent) { 

    View rowView = null; 
    final ViewHolder holder = new ViewHolder(); 
    if (convertView == null) { 

     LayoutInflater inflator = context.getLayoutInflater(); 
     rowView = inflator.inflate(R.layout.attach_pic, null); 

     holder.tv1 = (TextView) rowView.findViewById(R.id.defectpic); 
     holder.tv2 = (TextView) rowView.findViewById(R.id.no_of_uploded_pics); 
     holder.tv3 = (TextView) rowView.findViewById(R.id.camera); 

     holder.tv3.setOnClickListener(new View.OnClickListener() { 


      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 

       Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
       cameraIntent.putExtra(TAG, position); 
       context.startActivityForResult(cameraIntent, CAMERA_PIC_REQUEST); 

      } 
     }); 

     rowView.setTag(holder); 
     List itemVal1 = (List)getItem(position); 
     String st1 = (String)itemVal1.get(0); 
     holder.tv1.setText(st1); 

     List itemVal2 = (List)getItem(position); 
     String st2 = (String)itemVal2.get(1); 
     holder.tv2.setText(st2); 

    } else { 
     rowView = convertView; 
     ((ViewHolder) rowView.getTag()).tv1.setTag(list.get(position)); 
     ((ViewHolder) rowView.getTag()).tv2.setTag(list.get(position)); 
     ((ViewHolder) rowView.getTag()).tv3.setTag(list.get(position)); 
    } 

    return rowView; 
} 
0

爲每套標籤查看你要點擊其位置&獲取,使用gettag

0

首先請爲的TextView和ImageView的點擊,並可獲得焦點。

其次在getView中的適配器類將事件添加到textview和imageview。

相關問題