我有一個列表視圖與圖像視圖和線性佈局中的文本。我想在用戶點擊圖像視圖和文本視圖時執行不同的操作。我已經嘗試了onItemClickListener,但是它捕獲整個線性佈局。我在自定義適配器中嘗試了onClickListener,但無法獲得它的位置。如何捕獲列表項中不同視圖上的點擊事件?
我該如何解決這個問題?
我有一個列表視圖與圖像視圖和線性佈局中的文本。我想在用戶點擊圖像視圖和文本視圖時執行不同的操作。我已經嘗試了onItemClickListener,但是它捕獲整個線性佈局。我在自定義適配器中嘗試了onClickListener,但無法獲得它的位置。如何捕獲列表項中不同視圖上的點擊事件?
我該如何解決這個問題?
這裏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;
}
爲每套標籤查看你要點擊其位置&獲取,使用gettag
首先請爲的TextView和ImageView的點擊,並可獲得焦點。
其次在getView中的適配器類將事件添加到textview和imageview。