java - 如何使用当前用户的数据填充 recyclerview?
问题描述
我正在尝试从此参考访问数据:用户> uid>事务> trans
数据是孩子:trans,见截图:here
我做了以下事情: TransactionsHistory .java
public class TransactionsHistory extends AppCompatActivity {
private RecyclerView recyclerView;
private DatabaseReference mDatabase,refTransactions;
private FirebaseAuth mAuth;
private FirebaseAuth.AuthStateListener mAuthListener;
TextView amount, date, address, type;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_transactions_history);
getSupportActionBar().hide();
//initialize recyclerview and FIrebase objects
// recyclerView = (RecyclerView) findViewById(R.id.recyclerviewt);
// recyclerView.setLayoutManager(new LinearLayoutManager(this));
// recyclerView.setHasFixedSize(true);
//
// LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
// linearLayoutManager.setReverseLayout(true);
// linearLayoutManager.setStackFromEnd(true);
// recyclerView.setLayoutManager(linearLayoutManager);
mDatabase = FirebaseDatabase.getInstance().getReference().child("Users");
if (FirebaseAuth.getInstance().getCurrentUser() != null) {
String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();
refTransactions = mDatabase.child(uid).child("transactions");
}else {
Intent loginIntent = new Intent(TransactionsHistory.this, Login.class);
loginIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(loginIntent);
}
}
/////////////////////////////////////////////////////////////////////////////////////////////
@Override
protected void onStart() {
super.onStart();
Toast.makeText(this, "Loading...",Toast.LENGTH_SHORT).show();
mAuth.addAuthStateListener(mAuthListener);
FirebaseRecyclerAdapter<TransClass, TransactionsHistory.BlogzoneViewHolder> FBRA = new FirebaseRecyclerAdapter<TransClass, TransactionsHistory.BlogzoneViewHolder>(
TransClass.class,
R.layout.transactions_items,
TransactionsHistory.BlogzoneViewHolder.class,
refTransactions
) {
@Override
protected void populateViewHolder(TransactionsHistory.BlogzoneViewHolder viewHolder, TransClass model, int position) {
final String post_key = getRef(position).getKey().toString();
viewHolder.setTrans(model.getTrans());
viewHolder.mView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(TransactionsHistory.this, "...",Toast.LENGTH_SHORT).show();
}
});
}
};
recyclerView.setAdapter(FBRA);
}
public static class BlogzoneViewHolder extends RecyclerView.ViewHolder {
View mView;
public BlogzoneViewHolder(View itemView) {
super(itemView);
mView = itemView;
}
public void setTrans(String trans) {
TextView amount = mView.findViewById(R.id.amount_tr);
TextView date = mView.findViewById(R.id.address_tr);
TextView address = mView.findViewById(R.id.date_tr);
TextView type = mView.findViewById(R.id.tr_type);
amount.setText(trans);
}
}
///////////////////////////////////////////////////////////////////////////////////
}
TransClass.java
public class TransClass {
private String trans;
public TransClass(String trans ) {
this.trans = trans;
}
public TransClass() {
}
public void setTrans(String trans) {
this.trans = trans;
}
//Strings
public String getTrans() {return trans;}
}
当我打开此活动时,我的应用程序崩溃了。我的编码什么时候出错了?我的孩子也参考正确吗?
解决方案
推荐阅读
- sql - 输出总是 1
- c# - 如何为存储为数组 [ticks,offset] 的 DatetimeOffset 创建 MongoDB TTL 索引?
- html - 如何使两个堆叠的div具有相同的高度
- c++ - 循环通过 alpha_shape_2 的点
- java - 有没有办法用只有值的方法插入树
- python-3.x - 为什么 GIL 不同步在 DLL 中运行本机 C++ 代码的 Python 线程?
- amazon-web-services - 即使正确的 IAM 角色附加到实例,AWS cli 仍要求提供密钥和访问密钥 ID
- opencv - 当我尝试下载它时,带有 go 的计算机视觉给我一个错误
- reactjs - 将完整的反应应用程序嵌入到现有网页中
- r - 从一组坐标中绘制位置的频率热图