的ImageButton的ListView里面的onClick() [英] ImageButton inside ListView onClick()

查看:194
本文介绍了的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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆