Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/307.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 当数据从活动传递到片段时,片段中的RecycleView不显示任何内容_Java_Android Fragments_Android Activity_Android Recyclerview - Fatal编程技术网

Java 当数据从活动传递到片段时,片段中的RecycleView不显示任何内容

Java 当数据从活动传递到片段时,片段中的RecycleView不显示任何内容,java,android-fragments,android-activity,android-recyclerview,Java,Android Fragments,Android Activity,Android Recyclerview,我有Firebase回收站的碎片视图。它很好用。 代码如下: @Nullable @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view=inflater.inflate(R.layout.fragment_bankn

我有Firebase回收站的碎片视图。它很好用。 代码如下:

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

        //The next code is working on displaying all users coins per country
        banknotesList = (RecyclerView) view.findViewById(R.id.banknotes_list);
        banknotesList.setHasFixedSize(true);
        LinearLayoutManager linearLayoutManager = new LinearLayoutManager(view.getContext(), LinearLayoutManager.VERTICAL, false);
        linearLayoutManager.setReverseLayout(true);
        linearLayoutManager.setStackFromEnd(true);
        banknotesList.setLayoutManager(linearLayoutManager);

        DisplayAllCoins("russia");

        return view;
 }

    private void DisplayAllCoins(final String country_Key) {
        //Toast.makeText(getContext(), ""+country_Key, Toast.LENGTH_SHORT).show();
        final DatabaseReference coinsTotalRef = FirebaseDatabase.getInstance().getReference().child("admin").child("world_currency").child("year_title_data").child(country_Key);
        Query SortStoriesInDecendingOrder = coinsTotalRef.orderByChild("year_id");

        FirebaseRecyclerOptions<Banknotes> options =
                new FirebaseRecyclerOptions.Builder<Banknotes>()
                        .setQuery(SortStoriesInDecendingOrder, Banknotes.class)
                        .build();


        FirebaseRecyclerAdapter<Banknotes, BanknotesYearViewHolder> adapter =
                new FirebaseRecyclerAdapter<Banknotes, BanknotesYearViewHolder>(options) {
                    @Override
                    public void onBindViewHolder(@NonNull final BanknotesYearViewHolder viewHolder, int position, @NonNull Banknotes model) {
                        final String Year_Key = getRef(position).getKey();

                        viewHolder.setBanknote_year(model.getBanknote_year());
                        viewHolder.setCurrency(model.getCurrency());
                        viewHolder.setDenomination(model.getDenomination());
                        viewHolder.setComposition(model.getComposition());
                        viewHolder.setColor(model.getColor());
                    }

                    @NonNull
                    @Override
                    public BanknotesYearViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int viewType) {
                        View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.activity_world_currency_year_banknotes_data, viewGroup, false);
                        BanknotesYearViewHolder viewHolder = new BanknotesYearViewHolder(view);
                        return viewHolder;
                    }
                };
        banknotesList.setAdapter(adapter);
        adapter.startListening();


    }
现在我更新了片段代码:


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

        //The next code is working on displaying all users coins per country
        banknotesList = (RecyclerView) view.findViewById(R.id.banknotes_list);
        banknotesList.setHasFixedSize(true);
        LinearLayoutManager linearLayoutManager = new LinearLayoutManager(view.getContext(), LinearLayoutManager.VERTICAL, false);
        linearLayoutManager.setReverseLayout(true);
        linearLayoutManager.setStackFromEnd(true);
        banknotesList.setLayoutManager(linearLayoutManager);


        if(getArguments()!=null) {

            String country_Key = getArguments().getString("data").toLowerCase();
            DisplayAllCoins(country_Key);

        }
        

        return view;
 }

    private void DisplayAllCoins(final String country_Key) {
        Toast.makeText(getContext(), ""+country_Key, Toast.LENGTH_SHORT).show();
        final DatabaseReference coinsTotalRef = FirebaseDatabase.getInstance().getReference().child("admin").child("world_currency").child("year_title_data").child(country_Key);
        Query SortStoriesInDecendingOrder = coinsTotalRef.orderByChild("year_id");

        FirebaseRecyclerOptions<Banknotes> options =
                new FirebaseRecyclerOptions.Builder<Banknotes>()
                        .setQuery(SortStoriesInDecendingOrder, Banknotes.class)
                        .build();


        FirebaseRecyclerAdapter<Banknotes, BanknotesYearViewHolder> adapter =
                new FirebaseRecyclerAdapter<Banknotes, BanknotesYearViewHolder>(options) {
                    @Override
                    public void onBindViewHolder(@NonNull final BanknotesYearViewHolder viewHolder, int position, @NonNull Banknotes model) {
                        final String Year_Key = getRef(position).getKey();

                        viewHolder.setBanknote_year(model.getBanknote_year());
                        viewHolder.setCurrency(model.getCurrency());
                        viewHolder.setDenomination(model.getDenomination());
                        viewHolder.setComposition(model.getComposition());
                        viewHolder.setColor(model.getColor());
                    }

                    @NonNull
                    @Override
                    public BanknotesYearViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int viewType) {
                        View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.activity_world_currency_year_banknotes_data, viewGroup, false);
                        BanknotesYearViewHolder viewHolder = new BanknotesYearViewHolder(view);
                        return viewHolder;
                    }
                };
        banknotesList.setAdapter(adapter);
        adapter.startListening();


    }

@可空
@凌驾
创建视图时的公共视图(@NonNull LayoutInflater inflater、@Nullable ViewGroup container、@Nullable Bundle savedInstanceState){
视图=充气机。充气(右布局。碎片\u钞票\u布局,容器,假);
//下一个代码是显示每个国家的所有用户硬币
banknotesList=(RecyclerView)view.findViewById(R.id.banknotes\U列表);
钞票列表。setHasFixedSize(真);
LinearLayoutManager LinearLayoutManager=新的LinearLayoutManager(view.getContext(),LinearLayoutManager.VERTICAL,false);
linearLayoutManager.setReverseLayout(true);
linearLayoutManager.setStackFromEnd(true);
钞票列表。setLayoutManager(linearLayoutManager);
如果(getArguments()!=null){
字符串country_Key=getArguments().getString(“数据”).toLowerCase();
显示所有硬币(国家/地区密钥);
}
返回视图;
}
私有void DisplayAllCoins(最终字符串国家/地区密钥){
Toast.makeText(getContext(),“”+country_键,Toast.LENGTH_SHORT).show();
final DatabaseReference coinsTotalRef=FirebaseDatabase.getInstance().getReference().child(“管理”).child(“世界货币”).child(“年度标题数据”).child(国家/地区密钥);
查询SortStoriesInDecendingOrder=coinsTotalRef.orderByChild(“年份id”);
FirebaseRecyclerOptions选项=
新的FirebaseRecyclerOptions.Builder()
.setQuery(SortStoriesInDecendingOrder,Banknotes.class)
.build();
FirebaseRecyclerAdapter适配器=
新FirebaseRecyclerAdapter(选件){
@凌驾
BindViewHolder上的公共无效(@NonNull final banksnotesyearViewholder viewHolder,int位置,@NonNull banks model){
最终字符串年份_Key=getRef(位置).getKey();
viewHolder.setBanknote_year(model.getBanknote_year());
viewHolder.setCurrency(model.getCurrency());
viewHolder.setDenomination(model.getDenomination());
setComposition(model.getComposition());
setColor(model.getColor());
}
@非空
@凌驾
公共钞票EarViewHolder onCreateViewHolder(@NonNull ViewGroup ViewGroup,int viewType){
View View=LayoutInflater.from(viewGroup.getContext()).flate(R.layout.activity\u world\u currency\u year\u banks\u data,viewGroup,false);
BankNotesEarViewHolder viewHolder=新的BankNotesEarViewHolder(视图);
返回视图持有者;
}
};
钞票列表设置适配器(适配器);
adapter.startListening();
}
我正在使用Toast进行检查,我看到,参数“israel”已从另一个活动成功传递,但现在recycleView没有显示任何内容。。。。 有什么想法,为什么,我应该改变什么?
(如果我像以前一样编写“israel”硬编码,它会再次正常工作!)

Firebase数据库中是否存在键“israel”?听起来可能很明显,但如果Toast显示的是预期值,则表示错误在流中位于该值之后。当然。以色列存在于火场。如果我将写硬编码,它将工作良好!

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

        //The next code is working on displaying all users coins per country
        banknotesList = (RecyclerView) view.findViewById(R.id.banknotes_list);
        banknotesList.setHasFixedSize(true);
        LinearLayoutManager linearLayoutManager = new LinearLayoutManager(view.getContext(), LinearLayoutManager.VERTICAL, false);
        linearLayoutManager.setReverseLayout(true);
        linearLayoutManager.setStackFromEnd(true);
        banknotesList.setLayoutManager(linearLayoutManager);


        if(getArguments()!=null) {

            String country_Key = getArguments().getString("data").toLowerCase();
            DisplayAllCoins(country_Key);

        }
        

        return view;
 }

    private void DisplayAllCoins(final String country_Key) {
        Toast.makeText(getContext(), ""+country_Key, Toast.LENGTH_SHORT).show();
        final DatabaseReference coinsTotalRef = FirebaseDatabase.getInstance().getReference().child("admin").child("world_currency").child("year_title_data").child(country_Key);
        Query SortStoriesInDecendingOrder = coinsTotalRef.orderByChild("year_id");

        FirebaseRecyclerOptions<Banknotes> options =
                new FirebaseRecyclerOptions.Builder<Banknotes>()
                        .setQuery(SortStoriesInDecendingOrder, Banknotes.class)
                        .build();


        FirebaseRecyclerAdapter<Banknotes, BanknotesYearViewHolder> adapter =
                new FirebaseRecyclerAdapter<Banknotes, BanknotesYearViewHolder>(options) {
                    @Override
                    public void onBindViewHolder(@NonNull final BanknotesYearViewHolder viewHolder, int position, @NonNull Banknotes model) {
                        final String Year_Key = getRef(position).getKey();

                        viewHolder.setBanknote_year(model.getBanknote_year());
                        viewHolder.setCurrency(model.getCurrency());
                        viewHolder.setDenomination(model.getDenomination());
                        viewHolder.setComposition(model.getComposition());
                        viewHolder.setColor(model.getColor());
                    }

                    @NonNull
                    @Override
                    public BanknotesYearViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int viewType) {
                        View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.activity_world_currency_year_banknotes_data, viewGroup, false);
                        BanknotesYearViewHolder viewHolder = new BanknotesYearViewHolder(view);
                        return viewHolder;
                    }
                };
        banknotesList.setAdapter(adapter);
        adapter.startListening();


    }