Android 如何根据特定条件从FirebaseListAdapter中删除项目
我已经创建了一个聊天应用程序,使用firebase数据库作为其后端。 我想向启动应用程序的任何用户显示当前在我的应用程序中注册的所有用户,但在用户列表中显示其姓名除外 我使用了FirebaseListAdapter、ListView和单用户布局。 这是源代码。我在一个单独的线程中获取所有用户 我试图重写isEnabled方法,但它不起作用。它只禁用与正在查看当前用户列表的用户对应的列表项Android 如何根据特定条件从FirebaseListAdapter中删除项目,android,firebase-realtime-database,firebaseui,Android,Firebase Realtime Database,Firebaseui,我已经创建了一个聊天应用程序,使用firebase数据库作为其后端。 我想向启动应用程序的任何用户显示当前在我的应用程序中注册的所有用户,但在用户列表中显示其姓名除外 我使用了FirebaseListAdapter、ListView和单用户布局。 这是源代码。我在一个单独的线程中获取所有用户 我试图重写isEnabled方法,但它不起作用。它只禁用与正在查看当前用户列表的用户对应的列表项 private class LoadFriends extends Thread{ Cha
private class LoadFriends extends Thread{
ChatHomeActivity chatHomeActivity;
int pos;
public LoadFriends(ChatHomeActivity chatHomeActivity) {
this.chatHomeActivity = chatHomeActivity;
}
@Override
public void run() {
super.run();
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
runOnUiThread(new Runnable() {
@Override
public void run() {
progressBar.setVisibility(View.GONE);
}
});
final FirebaseListAdapter<UserDetailsClass> adapter = new FirebaseListAdapter<UserDetailsClass>(chatHomeActivity,UserDetailsClass.class,R.layout.friend_online,tempUserRef) {
// @Override
// protected void populateView(View v, User model, int position) {
//
// TextView t = (TextView) v.findViewById(R.id.textView3);
// TextView online_offline = (TextView) v.findViewById(R.id.textView4);
// String uID = model.getUniqueID();
//
// if(uID.equals(UserDetails.getString("UniqueID","ID"))){
// sender = model.getName();
// v.setVisibility(View.GONE);
// }
// if(!uID.equals(UserDetails.getString("UniqueID","ID"))){
// t.setText(model.getName());
// int x= model.getOnline();
//
// if(x == 0){
// online_offline.setText(" ");
// online_offline.setTextColor(Color.RED);
// }
// if (x == 1){
// online_offline.setText("Online");
// online_offline.setTextColor(Color.GREEN);
// }
// v.setVisibility(View.VISIBLE);
// }
// }
@Override
protected void populateView(View v, UserDetailsClass model, int position) {
TextView t = (TextView) v.findViewById(R.id.textView3);
TextView online_offline = (TextView) v.findViewById(R.id.textView4);
String uID = model.getUserID();
if(uID.equals(UserDetails.getString("UniqueID","ID"))){
sender = model.getName();
v.setVisibility(View.GONE);
pos = position;
//isEnabled(position);
//v.setLayoutParams(new AbsListView.LayoutParams(0, 0));
}
if(!uID.equals(UserDetails.getString("UniqueID","ID"))){
t.setText(model.getName());
int x= model.getOnline_offline_status();
if(x == 0){
online_offline.setText(" ");
online_offline.setTextColor(Color.RED);
}
if (x == 1){
online_offline.setText("Online");
online_offline.setTextColor(Color.GREEN);
}
v.setVisibility(View.VISIBLE);
//areAllItemsEnabled();
}
}
@Override
public boolean isEnabled(int position) {
if (position!= pos){
return true;
}
return super.isEnabled(position);
}
// @Override
// public boolean areAllItemsEnabled() {
// return true;
// }
@Override
public void notifyDataSetChanged() {
super.notifyDataSetChanged();
}
};
runOnUiThread(new Runnable() {
@Override
public void run() {
adapter.notifyDataSetChanged();
listView.setAdapter(adapter);
}
});
}
}
私有类LoadFriends扩展线程{
聊天室活动聊天室活动;
int pos;
公共加载好友(聊天室活动聊天室活动){
this.chatHomeActivity=chatHomeActivity;
}
@凌驾
公开募捐{
super.run();
试一试{
睡眠(5000);
}捕捉(中断异常e){
e、 printStackTrace();
}
runOnUiThread(新的Runnable(){
@凌驾
公开募捐{
progressBar.setVisibility(View.GONE);
}
});
final FirebaseListAdapter=新的FirebaseListAdapter(chatHomeActivity、UserDetailsClass.class、R.layout.friend_online、tempUserRef){
//@覆盖
//受保护的void populateView(视图v、用户模型、int位置){
//
//TextView t=(TextView)v.findViewById(R.id.textView3);
//TextView online\u offline=(TextView)v.findViewById(R.id.textView4);
//字符串uID=model.getUniqueID();
//
//if(uID.equals(UserDetails.getString(“UniqueID”、“ID”)){
//sender=model.getName();
//v.设置可见性(视图消失);
// }
//如果(!uID.equals(UserDetails.getString(“UniqueID”,“ID”))){
//t.setText(model.getName());
//int x=model.getOnline();
//
//如果(x==0){
//online\u offline.setText(“”);
//online\u offline.setTextColor(Color.RED);
// }
//如果(x==1){
//online_offline.setText(“online”);
//online\u offline.setTextColor(Color.GREEN);
// }
//v.setVisibility(视图可见);
// }
// }
@凌驾
受保护的void populateView(视图v、UserDetailsClass模型、int位置){
TextView t=(TextView)v.findViewById(R.id.textView3);
TextView online\u offline=(TextView)v.findViewById(R.id.textView4);
字符串uID=model.getUserID();
if(uID.equals(UserDetails.getString(“UniqueID”、“ID”)){
sender=model.getName();
v、 设置可见性(View.GONE);
pos=位置;
//i可启用(位置);
//v、 setLayoutParams(新的AbsListView.LayoutParams(0,0));
}
如果(!uID.equals(UserDetails.getString(“UniqueID”,“ID”))){
t、 setText(model.getName());
int x=model.getOnline\u offline\u status();
如果(x==0){
online\u offline.setText(“”);
online\u offline.setTextColor(Color.RED);
}
如果(x==1){
online_offline.setText(“online”);
online\u offline.setTextColor(Color.GREEN);
}
v、 设置可见性(View.VISIBLE);
//areAllItemsEnabled();
}
}
@凌驾
公共布尔值isEnabled(整型位置){
如果(位置!=位置){
返回true;
}
返回super.isEnabled(位置);
}
//@覆盖
//公共布尔值areAllItemsEnabled(){
//返回true;
// }
@凌驾
public void notifyDataSetChanged(){
super.notifyDataSetChanged();
}
};
runOnUiThread(新的Runnable(){
@凌驾
公开募捐{
adapter.notifyDataSetChanged();
setAdapter(适配器);
}
});
}
}