Java 如何将onClickListener函数分配给适配器的元素?

Java 如何将onClickListener函数分配给适配器的元素?,java,android,android-xml,android-adapter,Java,Android,Android Xml,Android Adapter,我有这个适配器: 我试着通过点击白色或粉色的按钮来做出动作。此映像对应于一个适配器,该适配器与列表关联。 适配器的代码如下所示: public class TuMesaAdapter extends ArrayAdapter<TuMesaModel>{ private String _id; public TuMesaAdapter(Context context, List<TuMesaModel> objects, String id) { sup

我有这个适配器:

我试着通过点击白色或粉色的按钮来做出动作。此映像对应于一个适配器,该适配器与列表关联。 适配器的代码如下所示:

    public class TuMesaAdapter extends ArrayAdapter<TuMesaModel>{
private String _id;
public TuMesaAdapter(Context context, List<TuMesaModel> objects, String id) {
    super(context, 0, objects);
    _id = id;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent){
    ViewHolder holder = null;
    TuMesaModel entry = getItem(position);
    String numero = "+"+entry.getUsername();
    //Toast.makeText(getContext(), Settings.PREFERENCES.getString(Settings.PHONE_PREF, null), Toast.LENGTH_LONG).show();
    if(convertView == null){
        LayoutInflater inflater = LayoutInflater.from(getContext());
        if(!entry.isAdmin()){
            convertView = inflater.inflate(R.layout.tumesa_user, parent, false);
            holder = new ViewHolder();
            holder.numero_personal_tu_mesa = (TextView) convertView.findViewById(R.id.numero_personal_tu_mesa);
            holder.aceptar_y_rechazar_tu_mesa = (LinearLayout) convertView.findViewById(R.id.aceptar_y_rechazar_tu_mesa);
            holder.foto_perfil_tu_mesa = (ImageView) convertView.findViewById(R.id.foto_perfil_tu_mesa);
            holder.mRelative = convertView.findViewById(R.id.layout_tu_mesa);
            Utils.setFontAllView((ViewGroup) holder.mRelative);
            convertView.setTag(holder);
        }else{
            convertView = inflater.inflate(R.layout.null_item, parent, false);
            holder = new ViewHolder();
            convertView.setTag(holder);
        }
    }else{
        holder =  (ViewHolder) convertView.getTag();
    }
    holder.numero_personal_tu_mesa.setText(entry.getUsername()); 
    return convertView;
}
private static class ViewHolder {
    public View mRelative;
    public TextView numero_personal_tu_mesa;
    public LinearLayout aceptar_y_rechazar_tu_mesa;
    public ImageView foto_perfil_tu_mesa;   
}}
   public class TuMesaAdapter extends ArrayAdapter<TuMesaModel>{
private String _id;
public TuMesaAdapter(Context context, List<TuMesaModel> objects, String id) {
    super(context, 0, objects);
    _id = id;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent){
    ViewHolder holder = null;
    TuMesaModel entry = getItem(position);
    String numero = "+"+entry.getUsername();
    //Toast.makeText(getContext(), Settings.PREFERENCES.getString(Settings.PHONE_PREF, null), Toast.LENGTH_LONG).show();
    if(convertView == null){
        LayoutInflater inflater = LayoutInflater.from(getContext());
        if(!entry.isAdmin()){
            convertView = inflater.inflate(R.layout.tumesa_user, parent, false);
            holder = new ViewHolder();
            holder.numero_personal_tu_mesa = (TextView) convertView.findViewById(R.id.numero_personal_tu_mesa);
            holder.aceptar_y_rechazar_tu_mesa = (LinearLayout) convertView.findViewById(R.id.aceptar_y_rechazar_tu_mesa);
            holder.foto_perfil_tu_mesa = (ImageView) convertView.findViewById(R.id.foto_perfil_tu_mesa);
            holder.mRelative = convertView.findViewById(R.id.layout_tu_mesa);
            holder.mRechazarTuMesa = convertView.findViewById(R.id.rechazar_tu_mesa);
            holder.mRechazarTuMesa.setOnClickListener(new View.OnClickListener(){
               @Override  
               public void onClick(View v){
                // do what you need to do here;
               };


};
            Utils.setFontAllView((ViewGroup) holder.mRelative);
            convertView.setTag(holder);
        }else{
            convertView = inflater.inflate(R.layout.null_item, parent, false);
            holder = new ViewHolder();
            convertView.setTag(holder);
        }
    }else{
        holder =  (ViewHolder) convertView.getTag();
    }
    holder.numero_personal_tu_mesa.setText(entry.getUsername()); 
    return convertView;
}
private static class ViewHolder {
    public View mRelative;
    public TextView numero_personal_tu_mesa;
    public LinearLayout aceptar_y_rechazar_tu_mesa;
    public ImageView foto_perfil_tu_mesa;
    public ImageView mRechazarTuMesa;   
}}
公共类TuMesaAdapter扩展了ArrayAdapter{
私有字符串_id;
公共TuMesaAdapter(上下文、列表对象、字符串id){
超级(上下文,0,对象);
_id=id;
}
@凌驾
公共视图getView(最终整数位置、视图转换视图、视图组父视图){
ViewHolder=null;
TuMesaModel条目=getItem(位置);
字符串numero=“+”+entry.getUsername();
//Toast.makeText(getContext(),Settings.PREFERENCES.getString(Settings.PHONE_PREF,null),Toast.LENGTH_LONG.show();
if(convertView==null){
LayoutInflater充气器=LayoutInflater.from(getContext());
如果(!entry.isAdmin()){
convertView=充气机。充气(R.layout.tumesa_用户,父项,false);
holder=新的ViewHolder();
holder.numero_personal_tu_mesa=(TextView)convertView.findViewById(R.id.numero_personal_tu_mesa);
holder.aceptar_y_rechazar_tu_mesa=(线性布局)convertView.findViewById(R.id.aceptar_y_rechazar_tu_mesa);
holder.foto_perfil_tu_mesa=(ImageView)convertView.findViewById(R.id.foto_perfil_tu_mesa);
holder.mRelative=convertView.findViewById(R.id.layout_tu_台面);
Utils.setFontAllView((视图组)holder.mrrelative);
convertView.setTag(支架);
}否则{
convertView=充气机。充气(R.layout.null\u项,父项,false);
holder=新的ViewHolder();
convertView.setTag(支架);
}
}否则{
holder=(ViewHolder)convertView.getTag();
}
holder.numero_personal_tu_mesa.setText(entry.getUsername());
返回视图;
}
私有静态类视图持有者{
公众观点相关;
公共文本查看数字个人桌面;
公共线路布局aceptar_y_rechazar_tu_mesa;
公共图像视图,用于显示性能;
}}

我的问题是,如何将函数“onClick”分配给aceptar_______________rechazar______________图像视图(与
rechazar____________
相同)的适配器,并将
onClickListener()
设置为如下所示:

    public class TuMesaAdapter extends ArrayAdapter<TuMesaModel>{
private String _id;
public TuMesaAdapter(Context context, List<TuMesaModel> objects, String id) {
    super(context, 0, objects);
    _id = id;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent){
    ViewHolder holder = null;
    TuMesaModel entry = getItem(position);
    String numero = "+"+entry.getUsername();
    //Toast.makeText(getContext(), Settings.PREFERENCES.getString(Settings.PHONE_PREF, null), Toast.LENGTH_LONG).show();
    if(convertView == null){
        LayoutInflater inflater = LayoutInflater.from(getContext());
        if(!entry.isAdmin()){
            convertView = inflater.inflate(R.layout.tumesa_user, parent, false);
            holder = new ViewHolder();
            holder.numero_personal_tu_mesa = (TextView) convertView.findViewById(R.id.numero_personal_tu_mesa);
            holder.aceptar_y_rechazar_tu_mesa = (LinearLayout) convertView.findViewById(R.id.aceptar_y_rechazar_tu_mesa);
            holder.foto_perfil_tu_mesa = (ImageView) convertView.findViewById(R.id.foto_perfil_tu_mesa);
            holder.mRelative = convertView.findViewById(R.id.layout_tu_mesa);
            Utils.setFontAllView((ViewGroup) holder.mRelative);
            convertView.setTag(holder);
        }else{
            convertView = inflater.inflate(R.layout.null_item, parent, false);
            holder = new ViewHolder();
            convertView.setTag(holder);
        }
    }else{
        holder =  (ViewHolder) convertView.getTag();
    }
    holder.numero_personal_tu_mesa.setText(entry.getUsername()); 
    return convertView;
}
private static class ViewHolder {
    public View mRelative;
    public TextView numero_personal_tu_mesa;
    public LinearLayout aceptar_y_rechazar_tu_mesa;
    public ImageView foto_perfil_tu_mesa;   
}}
   public class TuMesaAdapter extends ArrayAdapter<TuMesaModel>{
private String _id;
public TuMesaAdapter(Context context, List<TuMesaModel> objects, String id) {
    super(context, 0, objects);
    _id = id;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent){
    ViewHolder holder = null;
    TuMesaModel entry = getItem(position);
    String numero = "+"+entry.getUsername();
    //Toast.makeText(getContext(), Settings.PREFERENCES.getString(Settings.PHONE_PREF, null), Toast.LENGTH_LONG).show();
    if(convertView == null){
        LayoutInflater inflater = LayoutInflater.from(getContext());
        if(!entry.isAdmin()){
            convertView = inflater.inflate(R.layout.tumesa_user, parent, false);
            holder = new ViewHolder();
            holder.numero_personal_tu_mesa = (TextView) convertView.findViewById(R.id.numero_personal_tu_mesa);
            holder.aceptar_y_rechazar_tu_mesa = (LinearLayout) convertView.findViewById(R.id.aceptar_y_rechazar_tu_mesa);
            holder.foto_perfil_tu_mesa = (ImageView) convertView.findViewById(R.id.foto_perfil_tu_mesa);
            holder.mRelative = convertView.findViewById(R.id.layout_tu_mesa);
            holder.mRechazarTuMesa = convertView.findViewById(R.id.rechazar_tu_mesa);
            holder.mRechazarTuMesa.setOnClickListener(new View.OnClickListener(){
               @Override  
               public void onClick(View v){
                // do what you need to do here;
               };


};
            Utils.setFontAllView((ViewGroup) holder.mRelative);
            convertView.setTag(holder);
        }else{
            convertView = inflater.inflate(R.layout.null_item, parent, false);
            holder = new ViewHolder();
            convertView.setTag(holder);
        }
    }else{
        holder =  (ViewHolder) convertView.getTag();
    }
    holder.numero_personal_tu_mesa.setText(entry.getUsername()); 
    return convertView;
}
private static class ViewHolder {
    public View mRelative;
    public TextView numero_personal_tu_mesa;
    public LinearLayout aceptar_y_rechazar_tu_mesa;
    public ImageView foto_perfil_tu_mesa;
    public ImageView mRechazarTuMesa;   
}}
公共类TuMesaAdapter扩展了ArrayAdapter{
私有字符串_id;
公共TuMesaAdapter(上下文、列表对象、字符串id){
超级(上下文,0,对象);
_id=id;
}
@凌驾
公共视图getView(最终整数位置、视图转换视图、视图组父视图){
ViewHolder=null;
TuMesaModel条目=getItem(位置);
字符串numero=“+”+entry.getUsername();
//Toast.makeText(getContext(),Settings.PREFERENCES.getString(Settings.PHONE_PREF,null),Toast.LENGTH_LONG.show();
if(convertView==null){
LayoutInflater充气器=LayoutInflater.from(getContext());
如果(!entry.isAdmin()){
convertView=充气机。充气(R.layout.tumesa_用户,父项,false);
holder=新的ViewHolder();
holder.numero_personal_tu_mesa=(TextView)convertView.findViewById(R.id.numero_personal_tu_mesa);
holder.aceptar_y_rechazar_tu_mesa=(线性布局)convertView.findViewById(R.id.aceptar_y_rechazar_tu_mesa);
holder.foto_perfil_tu_mesa=(ImageView)convertView.findViewById(R.id.foto_perfil_tu_mesa);
holder.mRelative=convertView.findViewById(R.id.layout_tu_台面);
holder.mRechazarTuMesa=convertView.findViewById(R.id.rechazar\u tu\u mesa);
holder.mRechazarTuMesa.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
//在这里做你需要做的事;
};
};
Utils.setFontAllView((视图组)holder.mrrelative);
convertView.setTag(支架);
}否则{
convertView=充气机。充气(R.layout.null\u项,父项,false);
holder=新的ViewHolder();
convertView.setTag(支架);
}
}否则{
holder=(ViewHolder)convertView.getTag();
}
holder.numero_personal_tu_mesa.setText(entry.getUsername());
返回视图;
}
私有静态类视图持有者{
公众观点相关;
公共文本查看数字个人桌面;
公共线路布局aceptar_y_rechazar_tu_mesa;
公共图像视图,用于显示性能;
公共图像视图mRechazarTuMesa;
}}

我不明白这个问题。您想从一行中的特定项目获取单击事件吗?@Emmanuel aceptar_________________________________________________________________因为OP想要在两个按钮上单击事件,所以创建并分离onClickListener,然后分配给这两个按钮并使用
v.getId()
以确定单击了哪个按钮。我只提供了一个
ImageView
的操作方法。这是一个缺乏研究的问题。我认为他自己尝试第二个
ImageView
会对他有好处。没问题。很乐意帮助。Saludos。