gpt4 book ai didi

java - 如何在 OnClick 方法中获取当前位置以删除行

转载 作者:行者123 更新时间:2023-12-02 10:18:54 25 4
gpt4 key购买 nike

我对 Java 完全陌生,现在已经被困了几个小时了。我看过很多主题,但没有一个可以毫无错误地应用。不过我想这并不复杂。

我必须创建一个 OnClick 方法来删​​除由 txtListJour、txtListMontant、txtListMotif 和 cmdSuppHf 组成的整行。 cmdSuppHf 是删除按钮。

这是代码:内联注释部分显然不起作用:

class FraisHfAdapter extends BaseAdapter {

private final ArrayList<FraisHf> lesFrais ; // liste des frais du mois
private final LayoutInflater inflater ;


public FraisHfAdapter(Context context, ArrayList<FraisHf> lesFrais) {
inflater = LayoutInflater.from(context) ;
this.lesFrais = lesFrais ;
}


@Override
public int getCount() {
return lesFrais.size() ;
}


@Override
public Object getItem(int index) {
return lesFrais.get(index) ;
}


@Override
public long getItemId(int index) {
return index;
}


private class ViewHolder {
TextView txtListJour ;
TextView txtListMontant ;
TextView txtListMotif ;
ImageButton cmdSuppHf ;
}


@Override
public View getView(final int index, View convertView, ViewGroup parent) {
ViewHolder holder ;
if (convertView == null) {
holder = new ViewHolder() ;
convertView = inflater.inflate(R.layout.layout_liste, parent, false) ;
holder.txtListJour = convertView.findViewById(R.id.txtListJour);
holder.txtListMontant = convertView.findViewById(R.id.txtListMontant);
holder.txtListMotif = convertView.findViewById(R.id.txtListMotif);
holder.cmdSuppHf = convertView.findViewById(R.id.cmdSuppHf);
convertView.setTag(holder) ;
}else{
holder = (ViewHolder)convertView.getTag();
}
holder.txtListJour.setText(String.format(Locale.FRANCE, "%d", lesFrais.get(index).getJour()));
holder.txtListMontant.setText(String.format(Locale.FRANCE, "%.2f", lesFrais.get(index).getMontant())) ;
holder.txtListMotif.setText(lesFrais.get(index).getMotif()) ;
// holder.cmdSuppHf.setOnClickListener(view -> delete(holder.getAdapterPosition()));
holder.cmdSuppHf.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
// int index = view.getTag();
}
});

return convertView ;
}



}

我的问题是:如何利用索引(位置)来删除相应的行?如果您能让我走上正轨,我将非常感激!

最佳答案

不要在适配器上执行此操作,而是在您的 Activity 中执行此操作。只需为您的 ListView 实现一个 clickListener

yourListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id){
listView.removeViewAt(position);
}
});

关于java - 如何在 OnClick 方法中获取当前位置以删除行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54482335/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com