的ImageButton的ListView里面的onClick() [英] ImageButton inside ListView onClick()
本文介绍了的ImageButton的ListView里面的onClick()的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我旁边的ListView
onItemClickListener - 工作正常。
的onClick方法我投入getView定制适配器。但它的作品不好,它的工作原理,只有当位置== 0.Why ???
公共类mySCAdapter扩展SimpleCursorAdapter实现OnClickListener {
最后弦乐LOG_TAG =myLogs;
LayoutInflater吹气;
公共mySCAdapter(上下文的背景下,INT布局,光标C,的String []从,
INT []到){ 超(背景下,布局,C,从,到);
充气= LayoutInflater.from(上下文);
// TODO自动生成构造函数存根
}@覆盖
公共查看getView(INT位置,查看convertView,父母的ViewGroup){
视图V = NULL; 如果(convertView!= NULL)
V = convertView;
其他
V = inflater.inflate(R.layout.add_program_ex_list_item,父母,假);
的ImageButton按钮=(的ImageButton)V
.findViewById(R.id.add_program_exercise_list);
button.setTag(位置);
button.setOnClickListener(本);
返回super.getView(位置,convertView,父母);
}@覆盖
公共无效的onClick(视图v){
Log.d(LOG_TAG,它的工作原理,POS =+ v.getTag());}
}
解决方案
我认为你正在返回从getView方法来自定义适配器mySCAdapter.Return自定义视图默认视图,而不是调用返回super.getView(位置,convertView,父母);
@覆盖
公共查看getView(INT位置,查看convertView,父母的ViewGroup){
视图V = NULL; 如果(convertView!= NULL)
V = convertView;
其他
V = inflater.inflate(R.layout.add_program_ex_list_item,父母,假);
的ImageButton按钮=(的ImageButton)V
.findViewById(R.id.add_program_exercise_list);
button.setTag(位置);
button.setOnClickListener(本);
返回伏;
}
I have next listView onItemClickListener - works fine. onClick method i put into getView in custom Adapter. But it works bad, it works only when position ==0.Why???
public class mySCAdapter extends SimpleCursorAdapter implements OnClickListener {
final String LOG_TAG = "myLogs";
LayoutInflater inflater;
public mySCAdapter(Context context, int layout, Cursor c, String[] from,
int[] to) {
super(context, layout, c, from, to);
inflater = LayoutInflater.from( context );
// TODO Auto-generated constructor stub
}
@Override
public View getView( int position, View convertView, ViewGroup parent) {
View v = null;
if( convertView != null )
v = convertView;
else
v = inflater.inflate( R.layout.add_program_ex_list_item, parent, false);
ImageButton button = (ImageButton) v
.findViewById(R.id.add_program_exercise_list);
button.setTag(position);
button.setOnClickListener(this);
return super.getView(position, convertView, parent);
}
@Override
public void onClick(View v) {
Log.d(LOG_TAG, "It works, pos=" + v.getTag());
}
}
解决方案
I think you are returning a default view from getView method from custom adapter mySCAdapter.Return customised view rather than calling
return super.getView(position, convertView, parent);
@Override
public View getView( int position, View convertView, ViewGroup parent) {
View v = null;
if( convertView != null )
v = convertView;
else
v = inflater.inflate( R.layout.add_program_ex_list_item, parent, false);
ImageButton button = (ImageButton) v
.findViewById(R.id.add_program_exercise_list);
button.setTag(position);
button.setOnClickListener(this);
return v;
}
这篇关于的ImageButton的ListView里面的onClick()的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文