Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/191.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 来自Firebase的数据不会显示在片段中的RecyclerView中_Java_Android_Android Studio_Android Fragments_Android Recyclerview - Fatal编程技术网

Java 来自Firebase的数据不会显示在片段中的RecyclerView中

Java 来自Firebase的数据不会显示在片段中的RecyclerView中,java,android,android-studio,android-fragments,android-recyclerview,Java,Android,Android Studio,Android Fragments,Android Recyclerview,运行程序时,recyclerview中显示的数据有问题 看起来是这样的: 对于显示的数据,我使用firebase,如下所示 数据结构: 当我想以片段的形式在recyclerview中显示数据,但数据不显示时。我使用Firebase作为数据库 notadapter.java public class NotaAdapter extends RecyclerView.Adapter<NotaAdapter.MyViewHolder> { Context context; ArrayL

运行程序时,recyclerview中显示的数据有问题

看起来是这样的:

对于显示的数据,我使用firebase,如下所示

数据结构:

当我想以片段的形式在recyclerview中显示数据,但数据不显示时。我使用Firebase作为数据库

notadapter.java

public class NotaAdapter extends RecyclerView.Adapter<NotaAdapter.MyViewHolder> {

Context context;
ArrayList<ListNota> listnota;

public NotaAdapter (Context c,ArrayList<ListNota> p) {
    this.context = c;
    this.listnota = p;
}

@NonNull
@Override
public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int i) {
    return new MyViewHolder(LayoutInflater.from(context)
            .inflate(R.layout.item_nota, parent, false));
}

@Override
public void onBindViewHolder(@NonNull MyViewHolder myViewHolder, int i) {
    myViewHolder.no_nota.setText(listnota.get(i).getId_nota());
    myViewHolder.total_harga.setText(String.valueOf(listnota.get(i).getTotal_seluruh()));

    final String getnoNOta = listnota.get(i).getId_nota();


    myViewHolder.itemView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent gotoDetailNota = new Intent(context, DetailNotaAct.class);
            gotoDetailNota.putExtra("no_nota", getnoNOta);
            context.startActivity(gotoDetailNota);
        }
    });
}

@Override
public int getItemCount() {
    return listnota.size();
}

class MyViewHolder extends RecyclerView.ViewHolder {

    TextView no_nota, total_harga;

    public MyViewHolder(@NonNull View itemView) {
        super(itemView);

        no_nota = itemView.findViewById(R.id.xid_nota);
        total_harga = itemView.findViewById(R.id.xtotal_seluruh);
    }
}
}
HistoryFragment.java

public class HistoryFragment extends Fragment {

TextView txt_history, txt_toko, txt_report, txt_nama_toko, txt_jenis_toko;
LinearLayout btn_buat_nota;

DatabaseReference databaseUser, databaseToko, databaseNota;

String USERNAME_KEY = "usernamekey";
String username_key = "";
String username_key_new = "";
String id_Toko = "";

ProgressDialog progress;

RecyclerView nota_place;
ArrayList<ListNota> list;
NotaAdapter notaAdapter;


private View Notaview;

public HistoryFragment(){

}

@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    Notaview = inflater.inflate(R.layout.fragment_history, container, false);

    txt_nama_toko = (TextView) Notaview.findViewById(R.id.txt_nama_toko);
    txt_jenis_toko = (TextView) Notaview.findViewById(R.id.txt_jenis_toko);
    txt_history = (TextView) Notaview.findViewById(R.id.txt_history);
    txt_toko = (TextView) Notaview.findViewById(R.id.txt_toko);
    txt_report = (TextView) Notaview.findViewById(R.id.txt_report);
    btn_buat_nota = (LinearLayout) Notaview.findViewById(R.id.btn_buat_nota);


    progress = new ProgressDialog(getActivity());
    progress.setTitle("Loading");
    progress.setMessage("Memuat Data");
    progress.setCancelable(false);
    progress.show();


    getUsernameLocal();

    databaseUser = FirebaseDatabase.getInstance().getReference().child("Users").child(username_key_new);
    databaseUser.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
            id_Toko = dataSnapshot.child("id_toko").getValue().toString();

            databaseToko = FirebaseDatabase.getInstance().getReference().child("Toko").child(id_Toko);
            databaseToko.addValueEventListener(new ValueEventListener() {
                @Override
                public void onDataChange(@NonNull DataSnapshot dataSnapshot) {

                    txt_nama_toko.setText(dataSnapshot.child("nama_toko").getValue().toString());

                    //cek apakah child jenis toko ada
                    if (dataSnapshot.hasChild("jenis_toko")){
                        txt_jenis_toko.setText(dataSnapshot.child(" jenis_toko").getValue().toString());
                    }else{
                        txt_jenis_toko.setText("Jenis toko belum disetting");
                    }
                }

                @Override
                public void onCancelled(@NonNull DatabaseError databaseError) {

                }
            });
        }

        @Override
        public void onCancelled(@NonNull DatabaseError databaseError) {

        }
    });

    btn_buat_nota.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            final String id_nota = generateRandomString(16);
            Intent gotoBuatNota = new Intent(getActivity(), BuatNotaAct.class);
            gotoBuatNota.putExtra("id_nota", id_nota);
            startActivity(gotoBuatNota);
        }
    });

    nota_place = (RecyclerView) Notaview.findViewById(R.id.nota_place);
    notaAdapter = new NotaAdapter(getContext(), list);
    nota_place.setAdapter(notaAdapter);
    nota_place.setLayoutManager(new LinearLayoutManager(getActivity()));
    return Notaview;
}

@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    list = new ArrayList<ListNota>();
    loaddata();

}




private void loaddata(){
    databaseNota = FirebaseDatabase.getInstance().getReference().child("Nota").child(id_Toko);
    databaseNota.addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
            for (DataSnapshot dataSnapshot1: dataSnapshot.getChildren()){

                ListNota p = dataSnapshot1.getValue(ListNota.class);
                list.add(p);
            }
            progress.dismiss();
        }

        @Override
        public void onCancelled(@NonNull DatabaseError databaseError) {

        }
    });
}


public String generateRandomString(int length){
    char[] chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789".toCharArray();
    StringBuilder stringBuilder = new StringBuilder();
    Random random = new Random();
    for(int i = 0; i < length; i++){
        char c = chars[random.nextInt(chars.length)];
        stringBuilder.append(c);
    }
    return stringBuilder.toString();
}

public void getUsernameLocal(){
    SharedPreferences sharedPreferences = getActivity().getSharedPreferences(USERNAME_KEY, MODE_PRIVATE);
    username_key_new = sharedPreferences.getString(username_key,"");
}
}
公共类HistoryFragment扩展了片段{
text查看txt_历史,txt_东京,txt_报告,txt_nama_东京,txt_jenis_东京;
线路布置图(btn_buat_nota);
DatabaseReference databaseUser、databaseToko、databaseNota;
字符串USERNAME\u KEY=“usernamekey”;
字符串username_key=“”;
字符串username_key_new=“”;
字符串id_Toko=“”;
进程对话进程;
回收站观景广场;
数组列表;
无适配器无适配器;
私人观点;
公共历史片段(){
}
@可空
@凌驾
创建视图时的公共视图(@NonNull LayoutInflater inflater、@Nullable ViewGroup container、@Nullable Bundle savedInstanceState){
Notaview=充气机。充气(R.layout.fragment\u历史,容器,假);
txt_nama_toko=(TextView)Notaview.findViewById(R.id.txt_nama_toko);
txt_jenis_toko=(TextView)Notaview.findviewbyd(R.id.txt_jenis_toko);
txt_history=(TextView)Notaview.findviewbyd(R.id.txt_history);
txt_-toko=(TextView)Notaview.findviewbyd(R.id.txt_-toko);
txt_报告=(TextView)Notaview.findviewbyd(R.id.txt_报告);
btn_buat_nota=(LinearLayout)Notaview.findviewbyd(R.id.btn_buat_nota);
进度=新建进度对话框(getActivity());
进度。设置标题(“加载”);
进度。设置消息(“Memuat数据”);
进度。可设置可取消(false);
progress.show();
getUsernameLocal();
databaseUser=FirebaseDatabase.getInstance().getReference().child(“用户”).child(用户名\键\新);
databaseUser.addValueEventListener(新的ValueEventListener(){
@凌驾
public void onDataChange(@NonNull DataSnapshot DataSnapshot){
id_-Toko=dataSnapshot.child(“id_-Toko”).getValue().toString();
databaseToko=FirebaseDatabase.getInstance().getReference().child(“Toko”).child(id_-Toko);
databaseToko.addValueEventListener(新的ValueEventListener(){
@凌驾
public void onDataChange(@NonNull DataSnapshot DataSnapshot){
txt_nama_toko.setText(dataSnapshot.child(“nama_toko”).getValue().toString());
//cek apakah儿童jenis toko ada
if(dataSnapshot.hasChild(“jenis_toko”)){
txt_jenis_toko.setText(dataSnapshot.child(“jenis_toko”).getValue().toString());
}否则{
txt_jenis_toko.setText(“jenis toko belum disetting”);
}
}
@凌驾
已取消的公共void(@NonNull DatabaseError DatabaseError){
}
});
}
@凌驾
已取消的公共void(@NonNull DatabaseError DatabaseError){
}
});
btn_buat_nota.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
最终字符串id_nota=GeneratorDomainString(16);
Intent gotoBuatNota=新的Intent(getActivity(),BuatNotaAct.class);
gotoBuatNota.putExtra(“id_nota”,id_nota);
星触觉(gotoBuatNota);
}
});
nota_place=(RecyclerView)Notaview.findViewById(R.id.nota_place);
notadapter=新的notadapter(getContext(),list);
nota_place.setAdapter(notadapter);
nota_place.setLayoutManager(新的LinearLayoutManager(getActivity());
返回视图;
}
@凌驾
创建时的公共void(@Nullable Bundle savedInstanceState){
super.onCreate(savedInstanceState);
列表=新的ArrayList();
loaddata();
}
私有void loaddata(){
databaseNota=FirebaseDatabase.getInstance().getReference().child(“Nota”).child(id_-Toko);
databaseNota.addListenerForSingleValueEvent(新的ValueEventListener()){
@凌驾
public void onDataChange(@NonNull DataSnapshot DataSnapshot){
对于(DataSnapshot dataSnapshot1:DataSnapshot.getChildren()){
ListNota p=dataSnapshot1.getValue(ListNota.class);
增加(p);
}
进步。解散();
}
@凌驾
已取消的公共void(@NonNull DatabaseError DatabaseError){
}
});
}
公共字符串生成器域字符串(整数长度){
char[]chars=“abcdefghijklmnopqrstuvxyz012456789”;
StringBuilder StringBuilder=新的StringBuilder();
随机=新随机();
for(int i=0;i
您从错误的节点读取数据,您正在传递要从名为“users”的节点读取数据的引用

您的数据库引用应该如下所示

databaseUser = FirebaseDatabase.getInstance().getReference("Nota").child("Toko_Kita20082020371").child(username_key_new);
还要确保列表中应该包含节点所具有的所有变量。 例如,节点具有

name,id,price,description;
然后,应在列表中声明相同的变量,以便从firebase成功准备dta

name,id,price,description;