Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 当我单击listView项目时,如何在另一个活动中显示firestore的详细信息?_Java_Android_Firebase_Android Studio_Google Cloud Firestore - Fatal编程技术网

Java 当我单击listView项目时,如何在另一个活动中显示firestore的详细信息?

Java 当我单击listView项目时,如何在另一个活动中显示firestore的详细信息?,java,android,firebase,android-studio,google-cloud-firestore,Java,Android,Firebase,Android Studio,Google Cloud Firestore,我正在制作应用程序,我使用firestore作为数据库。我制作了一个由电影组成的列表视图(只有名字)。当我单击其中一个活动时,我想在另一个活动中显示详细信息。我为此做了一些事情,但我刚刚得到了我添加的最后一部电影。当我点击另一部时,结果就是我添加的最后一部电影。所有电影的细节都是一样的。我无法解决这个问题。我怎样才能修好它 我就是这样制作listView部分的 公共类Izlediklerim扩展了AppCompative活动{ 私有FirebaseAuth FirebaseAuth; 私人Fir

我正在制作应用程序,我使用firestore作为数据库。我制作了一个由电影组成的列表视图(只有名字)。当我单击其中一个活动时,我想在另一个活动中显示详细信息。我为此做了一些事情,但我刚刚得到了我添加的最后一部电影。当我点击另一部时,结果就是我添加的最后一部电影。所有电影的细节都是一样的。我无法解决这个问题。我怎样才能修好它

我就是这样制作listView部分的

公共类Izlediklerim扩展了AppCompative活动{
私有FirebaseAuth FirebaseAuth;
私人FirebaseFirestore FirebaseFirestore;
ArrayList adArray;
列表视图列表视图;
ArrayAdapter ArrayAdapter;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_izlediklerim);
firebaseFirestore=firebaseFirestore.getInstance();
adArray=newarraylist();
listView=findViewById(R.id.listView);
arrayAdapter=新的arrayAdapter(这是android.R.layout.simple\u list\u item\u 1,adArray);
setAdapter(arrayAdapter);
setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
意向意向=新意向(Izlediklerim.this,FilmiGoster.class);
星触觉(意向);
}
});
filmleriAl();
}
公共无效电影{
CollectionReference CollectionReference=firebaseFirestore.collection(“Filmler”);
collectionReference.orderBy(“filmtarih”).addSnapshotListener(新的EventListener(){
@凌驾
public void OneEvent(@Nullable QuerySnapshot queryDocumentSnapshots,@Nullable FirebaseFirestoreException e){
如果(e!=null){
Toast.makeText(Izlediklerim.this,e.getLocalizedMessage().toString(),Toast.LENGTH_LONG).show();
}
if(queryDocumentSnapshots!=null){
对于(DocumentSnapshot快照:queryDocumentSnapshots.getDocuments()){
Map data=snapshot.getData();
String name=(String)data.get(“filmadi”);
添加(名称);
arrayAdapter.notifyDataSetChanged();
}
}
}
});
}
}
这是细节部分

公共类FilmigMaster扩展了AppCompative活动{
ImageView fr;
文本视图fa、ft、fh;
私有FirebaseAuth FirebaseAuth;
私人FirebaseFirestore FirebaseFirestore;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u filmi\u goster);
fr=findViewById(R.id.fr);
fa=findViewById(R.id.fa);
ft=findViewById(R.id.ft);
fh=findViewById(R.id.fh);
firebaseFirestore=firebaseFirestore.getInstance();
firebaseAuth=firebaseAuth.getInstance();
CollectionReference CollectionReference=firebaseFirestore.collection(“Filmler”);
collectionReference.addSnapshotListener(新的EventListener(){
@凌驾
public void OneEvent(@Nullable QuerySnapshot queryDocumentSnapshots,@Nullable FirebaseFirestoreException e){
如果(e!=null){
Toast.makeText(FilmiGoster.this,e.getLocalizedMessage().toString(),Toast.LENGTH_LONG.show();
}
if(queryDocumentSnapshots!=null){
对于(DocumentSnapshot快照:queryDocumentSnapshots.getDocuments()){
Map data=snapshot.getData();
String hakinda=(String)data.get(“filmdusunce”);
String ad=(String)data.get(“filmadi”);
String downloadUrl=(String)data.get(“downloadUrl”);
String zaman=(String)data.get(“filmtarih”);
fa.setText(ad);
Picasso.get().load(downloadUrl).into(fr);
fh.setText(哈金达);
塞特克特堡(扎曼);
}
}
}
});
}
}

Izlediklerim
中还有两个数组列表

public class Izlediklerim extends AppCompatActivity {
    private FirebaseAuth firebaseAuth;
    private FirebaseFirestore firebaseFirestore;
    ArrayList<String> adArray;
    ListView listView;
    ArrayAdapter arrayAdapter;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_izlediklerim);

        firebaseFirestore=FirebaseFirestore.getInstance();
        adArray=new ArrayList<>();
        listView=findViewById(R.id.listView);
        arrayAdapter=new ArrayAdapter(this,android.R.layout.simple_list_item_1,adArray);
        listView.setAdapter(arrayAdapter);

        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

                Intent intent=new Intent(Izlediklerim.this,FilmiGoster.class);
                startActivity(intent);
            }
        });
        filmleriAl();
    }
    public void filmleriAl(){
        CollectionReference collectionReference = firebaseFirestore.collection("Filmler");
        collectionReference.orderBy("filmtarih").addSnapshotListener(new EventListener<QuerySnapshot>() {
            @Override
            public void onEvent(@Nullable QuerySnapshot queryDocumentSnapshots, @Nullable FirebaseFirestoreException e) {
                if (e != null) {
                    Toast.makeText(Izlediklerim.this, e.getLocalizedMessage().toString(), Toast.LENGTH_LONG).show();
                }

                if (queryDocumentSnapshots != null) {

                    for (DocumentSnapshot snapshot : queryDocumentSnapshots.getDocuments()) {

                        Map<String, Object> data = snapshot.getData();
                        String name = (String) data.get("filmadi");

                        adArray.add(name);
                        arrayAdapter.notifyDataSetChanged();
                    }
                }

            }
        });
    }
}
public class FilmiGoster extends AppCompatActivity {
    ImageView fr;
    TextView fa,ft,fh;
    private FirebaseAuth firebaseAuth;
    private FirebaseFirestore firebaseFirestore;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_filmi_goster);

        fr=findViewById(R.id.fr);
        fa=findViewById(R.id.fa);
        ft=findViewById(R.id.ft);
        fh=findViewById(R.id.fh);



        firebaseFirestore=FirebaseFirestore.getInstance();
        firebaseAuth=FirebaseAuth.getInstance();

        CollectionReference collectionReference = firebaseFirestore.collection("Filmler");
        collectionReference.addSnapshotListener(new EventListener<QuerySnapshot>() {
            @Override
            public void onEvent(@Nullable QuerySnapshot queryDocumentSnapshots, @Nullable FirebaseFirestoreException e) {
                if (e != null) {
                    Toast.makeText(FilmiGoster.this,e.getLocalizedMessage().toString(),Toast.LENGTH_LONG).show();
                }

                if (queryDocumentSnapshots != null) {
                    for (DocumentSnapshot snapshot : queryDocumentSnapshots.getDocuments()) {

                        Map<String, Object> data = snapshot.getData();


                        String hakkinda = (String) data.get("filmdusunce");
                        String ad = (String) data.get("filmadi");
                        String downloadUrl = (String) data.get("downloadurl");
                        String zaman = (String) data.get("filmtarih");




                        fa.setText(ad);
                        Picasso.get().load(downloadUrl).into(fr);
                        fh.setText(hakkinda);
                        ft.setText(zaman);



                    }
                }
            }
        });
    }

}
public class Izlediklerim extends AppCompatActivity {

    private FirebaseAuth firebaseAuth;
    private FirebaseFirestore firebaseFirestore;
    ArrayList<String> adArray;

    //here..
    ArrayList<String> hakkindaArray = new ArrayList<>();
    ArrayList<String> zamanArray = new ArrayList<>();

    ListView listView;
    ArrayAdapter arrayAdapter;
    .......
    .......
将电影详细信息作为
intent
extra:

for (DocumentSnapshot snapshot : queryDocumentSnapshots.getDocuments()) {

 Map<String, Object> data = snapshot.getData();

String name = (String) data.get("filmadi");

//add these too
String hakkinda = (String) data.get("filmdusunce");
String zaman = (String) data.get("filmtarih");

adArray.add(name);

//add these too
hakkindaArray.add(hakkinda);
zamanArray.add(zaman);
....
....
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

Intent intent=new Intent(Izlediklerim.this,FilmiGoster.class); 
//here..
intent.putExtra("movie_name" , adArray.get(position));
intent.putExtra("movie_hakkinda" , hakkindaArray.get(position));
intent.putExtra("movie_zaman" , zamanArray.get(position));
startActivity(intent);
....
....
public class FilmiGoster extends AppCompatActivity {
ImageView fr;
TextView fa,ft,fh;
private FirebaseAuth firebaseAuth;
private FirebaseFirestore firebaseFirestore;

//add these

private String movieName;
private String movieHakkinda;
private String movieZaman;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_filmi_goster);

//here get the passed movie details and use directly in textViews
movieName = getIntent().getStringExtra("movie_name");
movieHakkinda = getIntent().getStringExtra("movie_hakkinda");
movieZaman = getIntent().getStringExtra("movie_zaman");

......
......