2017-08-28 66 views
1

我从Firebase实时数据库获取的数据中列出了人员在回收视图中的名称。从android工作室中的github导入时出错2.3.3

我怎么能显示人的详细信息,当用户点击每个人的名字吗?

存储在给定的图像格式为每个人的描述:

enter image description here

+0

什么样的错误? –

回答

0

由于可以使用相同的名称很多用户,我建议你通过ID获取用户的详细信息。可能是你可以存储你的用户ID在一些认为是隐藏的。

您可以按照以下步骤通过标识获取用户的详细信息。

  1. 在Firebase数据库中创建一个与您的用户字段相对应的类。

    public class UserDetail { 
        private String uId; 
        private String name; 
        private String phoneNo; 
        private String address; 
        private String product; 
        private String spinner; 
        private String quantity; 
    
        // Empty constructor 
        // Getters and setters 
    } 
    
  2. 制作与上述类对应的DAO类,以便从数据库中提取记录。

    public class UserDetailDao { 
    
        private final FirebaseDatabase mDatabase; 
    
        public UserDetailDao() { 
         mDatabase = FirebaseDatabase.getInstance(); 
        } 
        public void getUserById(String id, OnResultFetched onResultFetched) { 
         final UserDetail userDetail = null; 
    
         mDatabase.getReference() 
           .child("users") 
           .child(id) 
           .addListenerForSingleValueEvent(new ValueEventListener() { 
            @Override 
            public void onDataChange(DataSnapshot dataSnapshot) { 
             userDetail = dataSnapshot.getValue(UserDetail.class); 
             onResultFetched.onResult(userDetail); 
            } 
    
            @Override 
            public void onCancelled(DatabaseError databaseError) { 
             onResultFetched.onResult(null); 
            } 
           }); 
        } 
    
        // Callback interface 
        public interface OnResultFetched { 
         public void onResult(UserDetail userDetail); 
        } 
    } 
    
  3. 现在从任何活动,你可以得到所有用户的列表:

    new UserDetailDao().getUserById(id_of_your_user, new UserDetailDao.OnResultFetched() { 
          @Override 
          public void onResult(UserDetail userDetail) { 
    
           // **** HERE IS YOUR USER **** 
    
          } 
         }); 
    
+0

非常感谢,它确实帮助我很多 – joshua

+0

如果这解决了您的问题,请您接受并点赞回答。提前致谢 :) –