【问题标题】:Count number automatically for card view自动计数卡片视图
【发布时间】:2017-02-24 17:57:56
【问题描述】:

我正在尝试制定一个方法,如果卡 position == 0 然后 viewHolder.mPostSortNum.setText("1");" 并且如果 position == 1 然后 viewHolder.mPostSortNum.setText("2"); 但我想自动编号所有卡的问题,因为这些方法包含位置 0, 1 只所以我需要一种方法来自动按位置对所有卡片进行编号。

这是我的活动方法:

FirebaseRecyclerAdapter<Getting_Posts, PostViewHolder> firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<Getting_Posts, PostViewHolder>(
            Getting_Posts.class, R.layout.post_card_design, PostViewHolder.class, mDatabase) {
        @Override
        protected void populateViewHolder(final PostViewHolder viewHolder, final Getting_Posts model, int position) {

            viewHolder.setUsername(model.getUsername());
            viewHolder.setProfile(getActivity().getApplicationContext(), model.getProfile());
            viewHolder.setDescribe(model.getDescribe());
            viewHolder.setWallpaper(getActivity().getApplicationContext(), model.getWallpaper());

            //heres my methods but its for 3 cards only
            if (position==0){viewHolder.mPostSortNum.setText("1");}
            if (position==1){viewHolder.mPostSortNum.setText("2");}
            if (position==2){viewHolder.mPostSortNum.setText("3");}
        }

    };

    mPostList.setAdapter(firebaseRecyclerAdapter);}

【问题讨论】:

  • 使用 FirebaseRecycler stackoverflow.com/questions/42249524/…对项目进行排序
  • 所以值是位置+1?似乎 for 循环可以处理这个问题。
  • 请给我彻底解决好吗
  • Alexander,我需要放入字符串而不是放入 firebase
  • 只需使用 .setText(String.valueOf(position+1));

标签: android firebase firebase-realtime-database android-cardview


【解决方案1】:

position 总是比实际数字小一,因为索引总是从 0 开始。每次调用 viewHolder.mPostSortNum.setText(""); 时只需使用 position + 1

 FirebaseRecyclerAdapter<Getting_Posts, PostViewHolder> firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<Getting_Posts, PostViewHolder>(
        Getting_Posts.class, R.layout.post_card_design, PostViewHolder.class, mDatabase) {
    @Override
    protected void populateViewHolder(final PostViewHolder viewHolder, final Getting_Posts model, int position) {

        viewHolder.setUsername(model.getUsername());
        viewHolder.setProfile(getActivity().getApplicationContext(), model.getProfile());
        viewHolder.setDescribe(model.getDescribe());
        viewHolder.setWallpaper(getActivity().getApplicationContext(), model.getWallpaper());

        viewHolder.mPostSortNum.setText(String.valueOf(position + 1));

    }

};

mPostList.setAdapter(firebaseRecyclerAdapter);}

【讨论】:

  • 这没有解决它,应用程序崩溃了......它在 android.widget 的 android.content.res.Resources.getText(Resources.java:331) 处给出了以下问题。 TextView.setText(TextView.java:4554)"
  • 那是因为你得先把它转成String类型再打印出来!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多