在listview Android的setOnItemClickListener上设置项目点击事件

我有一个使用自定义适配器的列表视图中的三个textview,点击该行,我想要执行所选文本视图的单击事件。

以下是我点击事件的示例代码。 这里第一次点击,听众被设置,只有第二次点击发生的实际点击事件,我想在第一次点击本身find这个。 可能吗?

listView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> adapter, View view, int pos, long id) { final Order orderBooking = (Order)adapter.getItemAtPosition(pos); // SKU listener final TextView tvSkuId = (TextView) view.findViewById(orderBooking.getSelectedSkuId()); tvSkuId.setOnClickListener(new OnClickListener() { @Override public void onClick(View view) { onSkuClickListener(view, orderBooking); } }); // SO listener final TextView tvSoId = (TextView) view.findViewById(orderBooking.getSelectedSoId()); tvSoId.setOnClickListener(new OnClickListener() { @Override public void onClick(View view) { onSoClickListener(view, orderBooking); } }); // OR listener final TextView txtOrId = (TextView) view.findViewById(orderBooking.getSelectedOrId()); //onOrClickListener(view, orderBooking); txtOrId.setOnClickListener(new OnClickListener() { @Override public void onClick(View view) { onOrClickListener(view, orderBooking); } }); } }); 

Solutions Collecting From Web of "在listview Android的setOnItemClickListener上设置项目点击事件"

为什么不在初始化的时候设置这些clickListeners呢? 当您将数据绑定到视图时,您应该在适配器中创build它。 您的代码是错误的,因为它会初始化您的意见,每次用户点击列表的行。

在getview方法中,在你的adapater中执行。 为每个文本视图设置一个onclick列表器。

 @Override public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) { List<SectionObj> article = (List<SectionObj>) children.get(groupPosition); if (convertView == null) { LayoutInflater infalInflater = (LayoutInflater) context .getSystemService(Context.LAYOUT_INFLATER_SERVICE); convertView = infalInflater.inflate(R.layout.listchildlayout_galleryview, null); } Gallery gallery = (Gallery) convertView.findViewById(R.id.customviewgallery); gallery.setAdapter(new AddImgAdp(context, article, groupPosition )); gallery.setOnItemClickListener(mOnGalleryClick); return convertView; } private OnItemClickListener mOnGalleryClick = new OnItemClickListener(){ @Override public void onItemClick(AdapterView<?> parent, View v, int position, long id) { } }; 

以上是画廊视图。 做同样的事情,除了做一个textview