微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

元素未添加到回收视图

如何解决元素未添加到回收视图

我想将ArrayList的元素添加到Recycleview中。但是当我运行模拟器时,回收站中什么也没出现。

MainActivity.java

private FragmentManager fragmentManager = getSupportFragmentManager();
private FragmentHome fragmentHome = new FragmentHome();
private FragmentNotice fragmentNotice = new FragmentNotice();
private FragmentCampaign fragmentCampaign = new FragmentCampaign();
private FragmentIndividual fragmentIndividual = new FragmentIndividual();

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

    FragmentTransaction transaction = fragmentManager.beginTransaction();
    BottomNavigationView bottomNavigationView = findViewById(R.id.navigationView);
    transaction.replace(R.id.frameLayout,fragmentHome).commitAllowingStateLoss();
    bottomNavigationView.setonNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
        @Override
        public boolean onNavigationItemSelected(@NonNull MenuItem item) {
            FragmentTransaction transaction = fragmentManager.beginTransaction();
            switch(item.getItemId()){
                case R.id.action_home:
                    transaction.replace(R.id.frameLayout,fragmentHome).commitAllowingStateLoss();
                    break;
                case R.id.action_notice:
                    transaction.replace(R.id.frameLayout,fragmentNotice).commitAllowingStateLoss();
                    break;
                case R.id.action_campaign:
                    transaction.replace(R.id.frameLayout,fragmentCampaign).commitAllowingStateLoss();
                    break;
                case R.id.action_private:
                    transaction.replace(R.id.frameLayout,fragmentIndividual).commitAllowingStateLoss();
                    break;
            }
            return true;
        }
    });

    FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();

    if (user == null) {
        startMyActivity(LoginActivity.class);
    } else {
        // 회원가입 or 로그인
        FirebaseFirestore db = FirebaseFirestore.getInstance();
        DocumentReference docRef = db.collection("users").document(user.getUid());
        docRef.get().addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() {
            @Override
            public void onComplete(@NonNull Task<DocumentSnapshot> task) {
                if (task.isSuccessful()) {
                    DocumentSnapshot document = task.getResult();
                    if (document != null) {
                        if (document.exists()) {
                            Log.d(TAG,"DocumentSnapshot data: " + document.getData());
                        } else {
                            Log.d(TAG,"No such document");
                            startMyActivity(MemberInfoActivity.class);
                        }
                    }
                } else {
                    Log.d(TAG,"get Failed with ",task.getException());
                }
            }
        });
    }
}


View.OnClickListener onClickListener = new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.logoutBtn:
                FirebaseAuth.getInstance().signOut();
                startMyActivity(LoginActivity.class);
                finish();
                break;
        }
    }
};

private void startMyActivity(Class c) {
    Intent intent = new Intent(this,c);
    startActivity(intent);
}
}

MainAdapter.java

private ArrayList<String> mDataset;
private Activity activity;

static class galleryViewHolder extends RecyclerView.ViewHolder {
    CardView cardView;
    galleryViewHolder(CardView v) {
        super(v);
        cardView = v;
    }
}

public MainAdapter(Activity activity,ArrayList<String> myDataset) {
    this.mDataset = myDataset;
    this.activity = activity;
    System.out.println(myDataset);
}

@NonNull
@Override
public MainAdapter.galleryViewHolder onCreateViewHolder(@NonNull ViewGroup parent,int viewType) {
    CardView cardView = (CardView) LayoutInflater.from(parent.getContext()).inflate(R.layout.item_post,parent,false);
    final galleryViewHolder galleryViewHolder = new galleryViewHolder(cardView);
    cardView.setonClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

        }
    });

    return galleryViewHolder;
}

@Override
public void onBindViewHolder(@NonNull final galleryViewHolder holder,int position) {
    CardView cardView = holder.cardView;
    TextView textView = cardView.findViewById(R.id.textView);
    textView.setText(mDataset.get(position));
}

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

FragmentCampaign.java

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

    ArrayList<String> arrayList = new ArrayList<>();
    arrayList.add("test text1");
    arrayList.add("test text2");
    arrayList.add("test text3");

    RecyclerView recyclerView = view.findViewById(R.id.recyclerView);
    recyclerView.setHasFixedSize(true);
    recyclerView.setLayoutManager(new linearlayoutmanager(getContext()));

    RecyclerView.Adapter mAdapter = new MainAdapter(getActivity(),arrayList);
    recyclerView.setAdapter(mAdapter);

    return inflater.inflate(R.layout.fragment_campaign,false);
}
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。