java Firebase实时数据库回收器视图onclick。将图像从第一个活动回收器视图传递到另一个活动回收器视图
我正在尝试将图像从实时数据库回收器视图传递到另一个活动
第一项活动
package com.khumomashapa.notes.activities;
import 安卓x.annotation.NonNull;
import 安卓x.appcompat.app.AppCompatActivity;
import 安卓x.recyclerview.widget.GridLayoutManager;
import 安卓x.recyclerview.widget.RecyclerView;
import 安卓.content.Context;
import 安卓.content.Intent;
import 安卓.os.Bundle;
import 安卓.view.View;
import 安卓.widget.Toast;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.Query;
import com.google.firebase.database.ValueEventListener;
import com.khumomashapa.notes.R;
import com.khumomashapa.notes.adapter.RecyclerAdapter;
import com.khumomashapa.notes.Messages;
import com.khumomashapa.notes.interfaces.RecyclerTouchListener;
import java.util.ArrayList;
public class StoreActivity extends AppCompatActivity {
// Widget
RecyclerView recyclerView;
//Firebase
private DatabaseReference mref;
// Variable
private ArrayList<Messages> messagesList;
private RecyclerAdapter recyclerAdapter;
private Context mContext;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_store);
recyclerView = findViewById(R.id.products_view);
GridLayoutManager layoutManager = new GridLayoutManager(this, 2);
recyclerView.setLayoutManager(layoutManager);
recyclerView.setHasFixedSize(true);
recyclerView.addOnItemTouchListener(new RecyclerTouchListener(getApplicationContext()
,recyclerView, new RecyclerTouchListener.ClickListener() {
@Override
public void onClick(View view, int position) {
Intent intent = new Intent(getBaseContext(), PreviewActivity.class);
intent.putExtra("images", position);
startActivity(intent);
Messages messages = messagesList.get(position);
Toast.makeText(StoreActivity.this, "You have selected: "+ messages.getTitle(), Toast.LENGTH_SHORT).show();
}
@Override
public void onLongClick(View view, int position) {
}
@Override
public void onButtonClicks(View view, int position) {
}
})
);
// Firebase
mref = FirebaseDatabase.getInstance().getReference();
// Arraylist
messagesList = new ArrayList<Messages>();
// Clear arraylist
ClearAll();
// Get data Method
GetDataFromFirebase();
}
private void GetDataFromFirebase(){
Query query = mref.child("Wallpapers");
query.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
ClearAll();
for (DataSnapshot snapshot : dataSnapshot.getChildren()){
Messages messages = new Messages();
messages.setImage(snapshot.child("image").getValue().toString());
messages.setTitle(snapshot.child("title").getValue().toString());
messagesList.add(messages);
}
recyclerAdapter = new RecyclerAdapter(getApplicationContext(), messagesList);
recyclerView.setAdapter(recyclerAdapter);
recyclerAdapter.notifyDataSetChanged();
}
@Override
public void onCancelled(@NonNull DatabaseError error) {
}
});
}
private void ClearAll(){
if(messagesList != null){
messagesList.clear();
if (recyclerAdapter !=null){
recyclerAdapter.notifyDataSetChanged();
}
}
messagesList = new ArrayList<Messages>();
}
}
This is the first activity layout
我希望在其中显示图像的活动强>
package com.khumomashapa.notes.activities;
import 安卓x.annotation.NonNull;
import 安卓x.appcompat.app.AppCompatActivity;
import 安卓.os.Bundle;
import 安卓.widget.Button;
import 安卓.widget.ImageView;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.ValueEventListener;
import com.khumomashapa.notes.R;
import com.squareup.picasso.Picasso;
public class PreviewActivity extends AppCompatActivity {
private ImageView preview;
Button purchaseBtn;
Button downloadBtn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_preview);
preview = findViewById(R.id.ImagePreview);
purchaseBtn = findViewById(R.id.PurchaseBtn);
downloadBtn = findViewById(R.id.DownloadBtn);
String preview = getIntent().getStringExtra("images");
}
}
This is the second activities layout
如您所见,imageview中没有显示任何图像。 这个代码确实有效。它确实会将用户带到另一个活动,但它不会显示在第一个活动中单击的图像,正如您所看到的,我要显示的图像不止一个。单击的图像必须显示在下一个活动中
简而言之,我希望发生的是:
- 有人点击图像,如绑架、蓝色电影院等
- 然后,用户被带到另一个活动,并显示他们单击的图像(绑架或蓝色电影院等)李>
抱歉,如果我听起来有些多余,但我已经在这方面停留了一段时间,而且我以前阅读的教程/帖子没有帮助,因为它们没有使用与Firebase实时数据库一起工作的代码
共 (0) 个答案