Android onTouchListener不使用自定义视图
我有一个自定义适配器类,它扩展了基本适配器。我试图在视图项上实现onTouchListener。但它不起作用。请帮忙 这是代码段Android onTouchListener不使用自定义视图,android,android-custom-view,ontouchlistener,Android,Android Custom View,Ontouchlistener,我有一个自定义适配器类,它扩展了基本适配器。我试图在视图项上实现onTouchListener。但它不起作用。请帮忙 这是代码段 @Override public View getView(final int position, View convertView, ViewGroup parent) { View cellView=convertView; ViewHolder viewHolder; if(cellView==null) { Layo
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
View cellView=convertView;
ViewHolder viewHolder;
if(cellView==null) {
LayoutInflater layoutInflater = (LayoutInflater) context.
getSystemService(Context.LAYOUT_INFLATER_SERVICE);
cellView = layoutInflater.inflate(R.layout.grid_topics, parent, false);
viewHolder = new ViewHolder();
viewHolder.icon = (ImageView) cellView.findViewById(R.id.cellImageView);
viewHolder.text = (TextView) cellView.findViewById(R.id.cellTextView);
cellView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) cellView.getTag();
}
viewHolder.icon.setImageBitmap(list.get(position).image);
viewHolder.text.setText(list.get(position).text);
cellView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_UP) {
Toast.makeText(context, list.get(position).text, Toast.LENGTH_SHORT).show();
return true;
}
return false;
}
});
return cellView;
}
在处理BaseAdapter时,请尝试遵循此方法。看看我是如何在if语句中实现onTouch侦听器的。这应该行得通
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
LayoutInflater mInflater = (LayoutInflater)
context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
if (convertView == null) {
convertView = mInflater.inflate(R.layout.list_item, null);
holder = new ViewHolder();
holder.txtDesc = (TextView) convertView.findViewById(R.id.desc);
holder.txtTitle = (TextView) convertView.findViewById(R.id.title);
holder.imageView = (ImageView) convertView.findViewById(R.id.icon);
convertView.setTag(holder);
convertView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_UP) {
Toast.makeText(context, list.get(position).text, Toast.LENGTH_SHORT).show();
return true;
}
return false;
}
});
}
else {
holder = (ViewHolder) convertView.getTag();
}
RowItem rowItem = (RowItem) getItem(position);
holder.txtDesc.setText(rowItem.getDesc());
holder.txtTitle.setText(rowItem.getTitle());
holder.imageView.setImageResource(rowItem.getImageId());
return convertView;
}
不,它仍然不起作用。你的代码和我的有什么不同?