java - BaseAdapter - 如何使用 notifyItemRemoved
问题描述
我有一个负责我的 SwipeCardView 的 BaseAdapter。现在我需要添加类似这样的内容notifyItemRemoved
来删除一个特定项目并显示新列表。我需要在 AlertDialog 部分的代码底部删除该项目。一切正常,只是我不知道如何删除它。不幸的是,我找不到正确的语法。仅供参考,我删除了构造函数等方法以保持帖子小:
public class FeedAdapter extends BaseCardAdapter {
private List<EventObject> ideen;
private Activity context;
@Override
public void onBindData(final int position, View cardview) {
if (ideen.size() ==0 || ideen == null){
return;
}
ImageView bild = cardview.findViewById(R.id.imageView);
TextView name = cardview.findViewById(R.id.name);
final EventObject eo = ideen.get(position);
name.setText(eo.getName());
TextView adress = cardview.findViewById(R.id.address);
Geocoder geocoder;
List<Address> addresses = null;
geocoder = new Geocoder(context, Locale.getDefault());
try {
addresses = geocoder.getFromLocation(Double.parseDouble(eo.getLat()), Double.parseDouble(eo.getLng()), 1); // Here 1 represent max location result to returned, by documents it recommended 1 to 5
} catch (IOException e) {
e.printStackTrace();
}
String address = addresses.get(0).getAddressLine(0); // If any additional address line present than only, check with max available address lines by getMaxAddressLineIndex()
String city = addresses.get(0).getLocality();
String state = addresses.get(0).getAdminArea();
String country = addresses.get(0).getCountryName();
String postalCode = addresses.get(0).getPostalCode();
String knownName = addresses.get(0).getFeatureName();
String[] separatedadress = address.split(",");
adress.setText(separatedadress[0]+" , "+city);
TextView date = cardview.findViewById(R.id.date);
date.setText(eo.getDate());
Button teilnehmen = cardview.findViewById(R.id.teilnehmen);
teilnehmen.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String userid = FirebaseAuth.getInstance().getCurrentUser().getUid();
DatabaseReference ref = FirebaseDatabase.getInstance().getReference().child("Users").child(userid).child("acceptedEvents").child(eo.getId());
ref.setValue(true);
getPLZ(eo.getId(), eo, position);
}
});
bild.setImageResource(R.drawable.blau);
}
private void getPLZ(final String id, final EventObject eo, final int position) {
String userid = FirebaseAuth.getInstance().getCurrentUser().getUid();
DatabaseReference ref = FirebaseDatabase.getInstance().getReference().child("Users").child(userid).child("plz");
ref.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String plz = dataSnapshot.getValue().toString();
setParticipantInEvent(plz, id, eo, position);
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
private void setParticipantInEvent(String plz, String id, EventObject eo, int position){
String userid = FirebaseAuth.getInstance().getCurrentUser().getUid();
DatabaseReference ref = FirebaseDatabase.getInstance().getReference().child("Events").child(plz).child(id);
ref.child("participants").child(userid).setValue(true);
askForCalendar(eo, position);
}
private void askForCalendar(final EventObject eventObject, final int position) {
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setMessage("Event in deinem Kalender speichern?")
.setCancelable(false)
.setPositiveButton("Ja", new
DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
Intent intent = new Intent(Intent.ACTION_EDIT);
intent.setType("vnd.android.cursor.item/event");
intent.putExtra("beginTime", Long.parseLong(eventObject.getTs()));
intent.putExtra("allDay", true);
intent.putExtra("endTime", Long.parseLong(eventObject.getTs())+60*60*1000);
intent.putExtra("title", eventObject.getName());
context.startActivity(intent);
}
})
.setNegativeButton("Nein", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
//Here i have to remove one item:
dialog.cancel();
}
});
AlertDialog alert = builder.create();
alert.show();
}
}
解决方案
推荐阅读
- ios - 从单元格注销后访问登录屏幕视图控制器
- python - 简单的python字符串操作
- javascript - Next.js 和 Express 的 CORS 问题:对预检请求的响应未通过访问控制检查:
- amazon-s3 - 试图从 Lambda 获取图像,但我被拒绝访问。使用 Amplify 客户端库运行良好
- google-maps-api-3 - 谷歌地理编码 API - 每天免费请求?
- css - 来自 site.css 的 .netcore css
- wordpress - 为什么要使用 403 Forbidden Wordpress wp-admin?
- flutter - 简单问题:使用 Grpc web 调用 grpc API 的 Flutter 移动应用
- javascript - JavaScript 中的文本到矩阵
- tcp - 如果 TCP 负载平衡器/代理终止连接,如何传递响应?