Android 无法显示firebase数据库中的所有图像,我想在网格视图中显示一个id中的所有图像
这是我的主要活动onstart(),它导致适配器类。 我想显示当前用户id下的所有图像,如网格视图 如何在图像上方firebase的网格视图中显示所有用户图像帖子Android 无法显示firebase数据库中的所有图像,我想在网格视图中显示一个id中的所有图像,android,firebase,firebase-realtime-database,Android,Firebase,Firebase Realtime Database,这是我的主要活动onstart(),它导致适配器类。 我想显示当前用户id下的所有图像,如网格视图 如何在图像上方firebase的网格视图中显示所有用户图像帖子 @Override protected void onStart() { super.onStart(); FirebaseUser currentUser = mAuth.getCurrentUser(); uploads = new ArrayList<Blog>(); if (curr
@Override
protected void onStart() {
super.onStart();
FirebaseUser currentUser = mAuth.getCurrentUser();
uploads = new ArrayList<Blog>();
if (currentUser != null && !currentUser.isAnonymous()) {
mUserf.child("online").setValue("true");
mProgressbar.setMessage("Welcome.....");
mProgressbar.show();
mProgressbar.dismiss();
ConnectivityManager check = (ConnectivityManager)getSystemService(CONNECTIVITY_SERVICE);
NetworkInfo info = check.getActiveNetworkInfo(); //for checking whether app is connected to a network or not..
if(info!=null && info.isConnected()) {
//Toast.makeText(MainActivity.this, "network available", Toast.LENGTH_SHORT).show();
firebaseAuth.addAuthStateListener(authStateListener);
mProgressbar.setMessage("Fetching Blogs.....");
mProgressbar.show();
mProgressbar.dismiss();
list = new ArrayList<>();
adapter = new MyCustomAdapter(this,list,firebaseAuth,mdatabaseReference,likesdatabaseReference);
recyclerView = (RecyclerView) findViewById(R.id.blog_list);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
recyclerView.setAdapter(adapter);
alpha = FirebaseDatabase.getInstance().getReference().child("Blog").child(mAuth.getCurrentUser().getUid());
mchildEventListener = new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
mProgressbar.dismiss();
String j = dataSnapshot.getKey();
Log.v("GETKEYZZZ", j);
Blog friendlyMessage = dataSnapshot.getValue(Blog.class);
friendlyMessage.setPostkey(j);
list.add(friendlyMessage);
adapter.notifyDataSetChanged();
}
public void onChildChanged(DataSnapshot dataSnapshot, String s) {}
public void onChildRemoved(DataSnapshot dataSnapshot){}
public void onChildMoved(DataSnapshot dataSnapshot, String s) {}
public void onCancelled(DatabaseError databaseError) {}
};
mquery.addChildEventListener(mchildEventListener);
} else {
//Toast.makeText(MainActivity.this, "No network available", Toast.LENGTH_SHORT).show();
Toast.makeText(getApplicationContext(),"Please Check Your Internet Connection", Toast.LENGTH_LONG).show();
}
// mDatabseUsers.child("online").setValue("true");
} else {
Intent user1 = new Intent(MainActivity.this, LoginActivity.class);
startActivity(user1);
}
}
@覆盖
受保护的void onStart(){
super.onStart();
FirebaseUser currentUser=mAuth.getCurrentUser();
uploads=新建ArrayList();
if(currentUser!=null&&!currentUser.isAnonymous()){
mUserf.child(“在线”).setValue(“真实”);
setMessage(“欢迎…”);
mProgressbar.show();
mProgressbar.disclose();
ConnectivityManager check=(ConnectivityManager)getSystemService(CONNECTIVITY_服务);
NetworkInfo=check.getActiveNetworkInfo();//用于检查应用程序是否连接到网络。。
if(info!=null&&info.isConnected()){
//Toast.makeText(MainActivity.this,“网络可用”,Toast.LENGTH_SHORT.show();
firebaseAuth.addAuthStateListener(authStateListener);
setMessage(“获取博客…”);
mProgressbar.show();
mProgressbar.disclose();
列表=新的ArrayList();
adapter=新的MyCustomAdapter(此、列表、firebaseAuth、mdatabaseReference,如DatabaseReference);
recyclerView=(recyclerView)findViewById(R.id.blog_列表);
recyclerView.setLayoutManager(新的LinearLayoutManager(本));
recyclerView.setAdapter(适配器);
alpha=FirebaseDatabase.getInstance().getReference().child(“Blog”).child(mAuth.getCurrentUser().getUid());
mchildEventListener=new ChildEventListener(){
@凌驾
公共void onChildAdded(DataSnapshot DataSnapshot,字符串s){
mProgressbar.disclose();
字符串j=dataSnapshot.getKey();
Log.v(“getkeyzz”,j);
Blog friendlyMessage=dataSnapshot.getValue(Blog.class);
friendlyMessage.setPostkey(j);
列表。添加(friendlyMessage);
adapter.notifyDataSetChanged();
}
public void onChildChanged(DataSnapshot DataSnapshot,字符串s){}
公共void onChildRemoved(DataSnapshot DataSnapshot){}
public void onChildMoved(DataSnapshot DataSnapshot,字符串s){}
已取消的公共void(DatabaseError DatabaseError){}
};
mquery.addChildEventListener(mchildEventListener);
}否则{
//Toast.makeText(MainActivity.this,“无可用网络”,Toast.LENGTH_SHORT.show();
Toast.makeText(getApplicationContext(),“请检查您的Internet连接”,Toast.LENGTH\u LONG.show();
}
//mDatabseUsers.child(“在线”).setValue(“真”);
}否则{
Intent user1=新Intent(MainActivity.this、LoginActivity.class);
startActivity(user1);
}
}
这是我的适配器类,其中
public class MyCustomAdapter extends RecyclerView.Adapter<MyCustomAdapter.myviewholder> {
Context context;
ArrayList<Blog> list;
List <String> imageUrls;
//List<String> imageUrls ;
LayoutInflater inflator;
int lastPosition = 1;
boolean mprogressLike = true,mprogressview = true;
DatabaseReference likeDatabaseReference;
FirebaseAuth firebaseAuth;
DatabaseReference blogDatabaseReference;
public MyCustomAdapter(Context context, ArrayList<Blog> list,FirebaseAuth firebaseAuth,DatabaseReference blogDatabaseReference, DatabaseReference likeDatabaseReference) {
this.context=context;
this.list=list;
inflator=LayoutInflater.from(context);
this.likeDatabaseReference=likeDatabaseReference;
this.firebaseAuth=firebaseAuth;
this.blogDatabaseReference=blogDatabaseReference;
}
@Override
public myviewholder onCreateViewHolder(ViewGroup parent, int position) {
View v=inflator.inflate(R.layout.posts,parent,false);//this view will contain appearance of each layout i.e each row..
myviewholder holder=new myviewholder(v);// we are passing the view of each row to the myviewholder class
return holder;
}
@Override
public void onBindViewHolder(final myviewholder holder, int position) {//here we will inflate datas in the widgets i.e image and title..
//It is called for each row..so every row is inflated here..
final Blog p=list.get(position);
holder.title.setText(p.getTitle());
holder.username.setText(p.getUsername());
holder.viewno.setText(p.getTimestamp());
/*int count = 0;
for(HospitalModel.Images images: hospitalModelList.get(position).getImagesList()) {
count += images.size();
}*/
for(Blog model : list) {
imageUrls = new ArrayList<>();;
imageUrls.addAll(model.getUrl());
Log.v("IMURLSSS", String.valueOf(imageUrls));
Picasso.with(context).load(imageUrls.get(position)).into(holder.imageview);
Log.v("IMGGPOS", imageUrls.get(position));
}
Picasso.with(context).load(p.getImage()).into(holder.userdp);
}
@Override
public int getItemCount() {
return list.size();
}
public class myviewholder extends RecyclerView.ViewHolder implements View.OnClickListener {
// It contains the elements in each row that we will inflate in the recyclerView..
TextView title,desc,username,likeno,viewno;
ImageView imageview,userdp, over, comments, likes;
ImageButton likebtn,viewbtn;
public myviewholder(View itemView) {
super(itemView);
title = (TextView) itemView.findViewById(R.id.blog_desc);//here we link with the elements of each view i.e each row and
// desc = (TextView) itemView.findViewById(R.id.postdesc);//here we link with the elements of each view i.e each row and
username = (TextView) itemView.findViewById(R.id.blog_user_name);
viewno = (TextView) itemView.findViewById(R.id.blog_date);
likeno = (TextView) itemView.findViewById(R.id.blog_like_count);
userdp = (ImageView) itemView.findViewById(R.id.blog_user_image);
imageview = (ImageView) itemView.findViewById(R.id.blog_image);
comments = (ImageView) itemView.findViewById(R.id.blog_comment_icon);
//here we link with the elements of each view i.e each row and
// likebtn = (ImageButton)itemView.findViewById(R.id.likebtn);
// viewbtn = (ImageButton)itemView.findViewById(R.id.viewbtn);
comments.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mprogressview = true;
int pos = getAdapterPosition();
Blog b = list.get(pos);
Intent intent = new Intent(context,CommentBox.class);
Bundle bundle = new Bundle();
bundle.putString("post_key",b.getUid().toString());
intent.putExtras(bundle);
context.startActivity(intent);
}
});
over = (ImageView) itemView.findViewById(R.id.overflow);
over.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showFilterPopup(v);
}
});
});
itemView.setOnClickListener(this);
}
}
公共类MyCustomAdapter扩展了RecyclerView.Adapter{
语境;
数组列表;
列出图像URL;
//列出图像URL;
充气机;
int lastPosition=1;
布尔值mprogressLike=true,mprogressview=true;
数据库引用,如tabbasereference;
FirebaseAuth FirebaseAuth;
数据库参考博客数据库参考;
公共MyCustomAdapter(上下文上下文、ArrayList列表、FirebaseAuth FirebaseAuth、DatabaseReference blogDatabaseReference、DatabaseReference likeDatabaseReference){
this.context=context;
this.list=list;
充气器=从(上下文)开始充气;
this.likeDatabaseReference=likeDatabaseReference;
this.firebaseAuth=firebaseAuth;
this.blogDatabaseReference=blogDatabaseReference;
}
@凌驾
公共myviewholder onCreateViewHolder(视图组父级,int位置){
视图v=充气器。充气(R.layout.posts,parent,false);//此视图将包含每个布局的外观,即每一行。。
myviewholder=newmyviewholder(v);//我们正在将每一行的视图传递给myviewholder类
报税表持有人;
}
@凌驾
public void onBindViewHolder(最终的myviewholder,int位置){//这里我们将放大小部件中的数据,即图像和标题。。
//它是为每一行调用的,所以每一行在这里都是充气的。。
最终博客p=list.get(位置);
holder.title.setText(p.getTitle());
holder.username.setText(p.getUsername());
holder.viewno.setText(p.getTimestamp());
/*整数计数=0;
for(HospitalModel.Images图像:hospitalModelList.get(position.getImagesList()){
count+=images.size();
}*/
用于(博客模型:列表){
ImageURL=newArrayList();;
addAll(model.getUrl());
Log.v(“IMURLSSS”,String.valueOf(imageUrls));
毕加索.with(context).load(imageURL.get(position)).into(holder.imageview);
Log.v(“IMGGPOS”,imageurl.get(position));
}
毕加索.with(context).load(p.getImage()).into(holder.userdp);
}
@凌驾
public int getItemCount(){
返回list.size();
}
公共类myviewholder扩展了RecyclerView.ViewHolder实现了View.OnClickListener{
//它包含我们将在recyclerView中膨胀的每行元素。。
文本视图标题、描述、用户名、LIKEO、视图编号;
ImageView ImageView,userdp,over,comments,likes;
图像按钮,如EBTN、viewbtn;
公共myviewholder(查看项目视图){
超级(项目视图);
title=(TextView)itemView.findViewById(R.id.blog_desc);//这里我们链接每个视图的元素,即每一行和
//desc=(TextView)itemView.findViewById(R.id.postdesc);//她
String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference urlRef = rootRef.child("Blog").child(uid).child("url");
ValueEventListener valueEventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot ds : dataSnapshot.getChildren()) {
String url = ds.getValue(String.class);
Log.d("TAG", url);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {}
};
urlRef.addListenerForSingleValueEvent(valueEventListener);
String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference uidRef = rootRef.child("Blog").child(uid);
ValueEventListener valueEventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String uid = dataSnapshot.child("uid").getValue(String.class);
String title = dataSnapshot.child("title").getValue(String.class);
String timestamp = dataSnapshot.child("timestamp").getValue(String.class);
Log.d("TAG", uid + " / " + title + " / " + timestamp);
for(DataSnapshot ds : dataSnapshot.child("url").getChildren()) {
String url = ds.getValue(String.class);
Log.d("TAG", url);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {}
};
uidRef.addListenerForSingleValueEvent(valueEventListener);