如何从适配器获取 List size() 并从回收器适配器本身更新 Activity UI?
How to get the List size() from adapter and update Activity UI from recycler Adapter itself?
我的适配器调用中有一个删除按钮,当我按下删除按钮时我想
1.从列表 和
中删除值
2。更新主列表的大小activity
和。 曾尝试使用我提到的界面 ,但它不起作用,我很困惑。
所以谁能给我一个最好的方法
我的适配器代码:
@Override
public void onBindViewHolder(final AddLineItem_Adapter.ViewHolder holder, final int position) {
final AddLineItem_ListView addLineItem_listView = addLineItem_listViews.get(position);
holder.tv_OrderID.setText(addLineItem_listView.getItemID());
holder.tv_ProductName.setText(addLineItem_listView.getProductName());
holder.tv_Quantity.setText(addLineItem_listView.getQuantity());
holder.tv_UnitPrice.setText(addLineItem_listView.getUnitPrice());
holder.tv_TotalAmount.setText(addLineItem_listView.getTotalAmount());
holder.btn_Delete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
addLineItem_listViews.remove(position);
notifyDataSetChanged();
}
});
}
我想在 TextView 中更新主要 activity 上的 addLineItem_listView
大小。
使用这个功能
public void removeAt(int position) {
list.remove(position);
notifyItemRemoved(position);
notifyItemRangeChanged(position, list.size());
}
- 创建界面..
- 传递给适配器..
- 删除后调用接口函数(提供列表大小)
Create interface
public interface ShowDeleted {
void showDeleted(int size);
}
Initialize the interface anonymously in the activity like this
ShowDeleted showDeleted = new ShowDeleted() {
@Override
public void showDeleted(int size) {
// show the changed list size or update UI
}
};
Pass the interface to the recyclerAdapter
YourAdapter youradpter = new YourAdpater(context,list,showDeleted );
Initialize the constructor of recyclerAdapter like this:-
public YourAdapter(Context context, YourList yourList, ShowDeleted
showDeleted)
{
}
holder.onClick do this
holder.btn_Delete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
addLineItem_listViews.remove(position);
notifyDataSetChanged();
this.showDeleted.showDeleted(addLineItem_listViews.size());
}
});
尝试使用view.setTag(位置)
@Override
public void onBindViewHolder(final AddLineItem_Adapter.ViewHolder holder, final int position) {
final AddLineItem_ListView addLineItem_listView = addLineItem_listViews.get(position);
holder.tv_OrderID.setText(addLineItem_listView.getItemID());
holder.tv_ProductName.setText(addLineItem_listView.getProductName());
holder.tv_Quantity.setText(addLineItem_listView.getQuantity());
holder.tv_UnitPrice.setText(addLineItem_listView.getUnitPrice());
holder.tv_TotalAmount.setText(addLineItem_listView.getTotalAmount());
holder.btn_Delete.setTag(position)
holder.btn_Delete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
addLineItem_listViews.remove((Integer)v.getTag());
notifyDataSetChanged();
}
});
}
祝你好运!
我的适配器调用中有一个删除按钮,当我按下删除按钮时我想
1.从列表 和
中删除值2。更新主列表的大小activity
和。 曾尝试使用我提到的界面
所以谁能给我一个最好的方法
我的适配器代码:
@Override
public void onBindViewHolder(final AddLineItem_Adapter.ViewHolder holder, final int position) {
final AddLineItem_ListView addLineItem_listView = addLineItem_listViews.get(position);
holder.tv_OrderID.setText(addLineItem_listView.getItemID());
holder.tv_ProductName.setText(addLineItem_listView.getProductName());
holder.tv_Quantity.setText(addLineItem_listView.getQuantity());
holder.tv_UnitPrice.setText(addLineItem_listView.getUnitPrice());
holder.tv_TotalAmount.setText(addLineItem_listView.getTotalAmount());
holder.btn_Delete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
addLineItem_listViews.remove(position);
notifyDataSetChanged();
}
});
}
我想在 TextView 中更新主要 activity 上的 addLineItem_listView
大小。
使用这个功能
public void removeAt(int position) {
list.remove(position);
notifyItemRemoved(position);
notifyItemRangeChanged(position, list.size());
}
- 创建界面..
- 传递给适配器..
- 删除后调用接口函数(提供列表大小)
Create interface
public interface ShowDeleted {
void showDeleted(int size);
}
Initialize the interface anonymously in the activity like this
ShowDeleted showDeleted = new ShowDeleted() {
@Override
public void showDeleted(int size) {
// show the changed list size or update UI
}
};
Pass the interface to the recyclerAdapter
YourAdapter youradpter = new YourAdpater(context,list,showDeleted );
Initialize the constructor of recyclerAdapter like this:-
public YourAdapter(Context context, YourList yourList, ShowDeleted
showDeleted)
{
}
holder.onClick do this
holder.btn_Delete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
addLineItem_listViews.remove(position);
notifyDataSetChanged();
this.showDeleted.showDeleted(addLineItem_listViews.size());
}
});
尝试使用view.setTag(位置)
@Override
public void onBindViewHolder(final AddLineItem_Adapter.ViewHolder holder, final int position) {
final AddLineItem_ListView addLineItem_listView = addLineItem_listViews.get(position);
holder.tv_OrderID.setText(addLineItem_listView.getItemID());
holder.tv_ProductName.setText(addLineItem_listView.getProductName());
holder.tv_Quantity.setText(addLineItem_listView.getQuantity());
holder.tv_UnitPrice.setText(addLineItem_listView.getUnitPrice());
holder.tv_TotalAmount.setText(addLineItem_listView.getTotalAmount());
holder.btn_Delete.setTag(position)
holder.btn_Delete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
addLineItem_listViews.remove((Integer)v.getTag());
notifyDataSetChanged();
}
});
}
祝你好运!