FireStore RecyclerView не показывает ничего на переднем плане, onBind () и onCreate на RecyclerAdapter не вызывается - PullRequest
0 голосов
/ 05 марта 2019

Можете ли вы, ребята, помочь мне с моим кодом утилизации в пожарном магазине здесь, я переписываю 5 раз, все тот же, дисплей ничего не показывает,

в первый раз, он загрузил только один список того, что я намеревался показать,поэтому я пытаюсь поиграть с изменением макета, но теперь он вообще ничего не показывает, даже если я вернусь к исходному макету ограничений

решений, которые я пробовал:

1) добавление adapter.listeningonSart ()

2) правила консоли Firestore изменяются, чтобы разрешить

3) изменить макет утилизатора на wrap_content, поэкспериментировать с макетом координатора и всем, что связано с макетом

4)добавьте прослушиватель, чтобы увидеть, существуют ли данные в то время, в onCreate ()> данные существуют, просто не отображаются в представлении реселлера.

5) добавить еще одно действие для проверки подлинности и добавить данные для проверки подлинности в базу данных,> работает, но проблема сохраняется

6) запустить отладку и добавить проверку потока с помощью Log.i ()> turnНаши, onBind и OnCreate на адаптере никогда не вызывались, но я не могу найти ответ, почему,

Вы, ребята, пожалуйста, помогите мне, большое спасибо.

Я проверил, существуют ли данные с помощью datasnapshot, они действительно существуют,

Я добавил:

@Override

protected void onStart() {
    super.onStart();
    adapter.startListening();
}

@Override
protected void onStop() {
    super.onStop();

    if (adapter != null) {
        adapter.stopListening();
    }
}

также, все еще не работает.я погуглил все возможные решения, пока ничего не работает.

import javax.annotation.Nullable;

public class TestActivity extends AppCompatActivity {

private FirebaseFirestore db = FirebaseFirestore.getInstance();
private CollectionReference notebookRef = db.collection("employee");

private EmployeeAdapter adapter;


private CollectionReference secondref = db.collection("second_employee");



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



    Log.i("chekk","1");
//adapter.startListening();


secondref.addSnapshotListener(new EventListener<QuerySnapshot>() {
    @Override
    public void onEvent(@Nullable QuerySnapshot queryDocumentSnapshots, @Nullable FirebaseFirestoreException e) {
        for(QueryDocumentSnapshot documentSnapshot : queryDocumentSnapshots){

            String kk = documentSnapshot.getId();

            Log.i("chekk uid we input:", kk);
        }
    }
});

notebookRef.addSnapshotListener(new EventListener<QuerySnapshot>() {
    @Override
    public void onEvent(@Nullable QuerySnapshot queryDocumentSnapshots, @Nullable FirebaseFirestoreException e) {

        for(QueryDocumentSnapshot documentSnapshot : queryDocumentSnapshots){

            String kk = documentSnapshot.getId();

            Log.i("chekk uid:", kk);
        }

    }
});


setupRecyclerView();



}

private void setupRecyclerView() {

    Query query = notebookRef.orderBy("name").limit(2);

    FirestoreRecyclerOptions<Nama> options = new FirestoreRecyclerOptions.Builder<Nama>()
            .setQuery(query,Nama.class)
            .build();

    Log.i("chekk","2");
    adapter = new EmployeeAdapter(options);
    Log.i("chekk","3");
    RecyclerView recyclerView = findViewById(R.id.recyclreID);
    recyclerView.setHasFixedSize(true);
    recyclerView.setLayoutManager(new LinearLayoutManager(this));
    Log.i("chekk","4");
  //      adapter.startListening();
    recyclerView.setAdapter(adapter);

    Log.i("chekk","5");
}

@Override
protected void onStart() {
    super.onStart();
    adapter.startListening();
}

@Override
protected void onStop() {
    super.onStop();
    adapter.stopListening();
}

}

вот мой код адаптера:

public class EmployeeAdapter extends FirestoreRecyclerAdapter<Nama,EmployeeAdapter.InsiderHolder> {
public EmployeeAdapter(FirestoreRecyclerOptions<Nama> options) {
super(options);

    Log.i("chekk","6");
}

@Override
protected void onBindViewHolder(@NonNull InsiderHolder holder, int position, @NonNull Nama model) {
    Log.i("chekk","99");
    holder.textView.setText(model.getName());

}

@NonNull
@Override
public InsiderHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
    //return null;

    Log.i("chekk","88");
    View v = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.custom_layout_testt, viewGroup,false);

    return new InsiderHolder(v);

}

public class InsiderHolder extends RecyclerView.ViewHolder {

    TextView textView;

    public InsiderHolder(@NonNull View itemView) {
        super(itemView);
        Log.i("chekk","77");
        textView = itemView.findViewById(R.id.textviewcustomID);
    }
}

}

javaкласс для объекта:

public class Nama {
private String name;

public Nama() {

}

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

}

xml для повторного просмотра:

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".TestActivity">

    <android.support.v7.widget.RecyclerView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/recyclreID">



    </android.support.v7.widget.RecyclerView>

</android.support.design.widget.CoordinatorLayout>

xml для пользовательского макета:

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent" android:layout_height="match_parent">

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">


        <TextView
            android:id="@+id/textviewcustomID"
            android:layout_width="wrap_content"

            android:layout_height="wrap_content"
            android:layout_alignParentStart="true"
            android:layout_alignParentTop="true"
            android:layout_centerInParent="true"
            android:layout_marginStart="176dp"
            android:layout_marginTop="17dp"
            android:layout_marginBottom="20dp"
            android:ellipsize="end"
            android:maxLines="1"
            android:text="Title"
            android:textAppearance="@style/TextAppearance.AppCompat.Large" />

        />

    </RelativeLayout>

</android.support.v7.widget.CardView>
...