简体   繁体   中英

Recyclerview items disappear

I implemented the recyclerview with layoutmanager in horizontal format in android studio . Everything was going well until android studio crashed. I managed to recover all my code but this time whenever I scroll, my textview items disappear. I have tried rebuilding using different API versions but the problem still persists. this is my code below:

MainActivity

public class MainActivity extends AppCompatActivity {

    public static final String LOGTAG="kwik";
    SalesDataSource salesDS;
    SalesAdapter adapter;
    Sales sales;
    List<Sales> transaction;


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

        // Get the ViewPager and set it's PagerAdapter so that it can display items
        ViewPager viewPager = (ViewPager) findViewById(R.id.viewpager);
        viewPager.setAdapter(new MyPagerAdapter(getSupportFragmentManager()));

        // Give the PagerSlidingTabStrip the ViewPager
        PagerSlidingTabStrip tabsStrip = (PagerSlidingTabStrip) findViewById(R.id.tabs);
        // Attach the view pager to the tab strip
        tabsStrip.setViewPager(viewPager);
    }
}

MovieAdapter

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

    private List<MenuItem> menuItemList;

    public class MyViewHolder extends RecyclerView.ViewHolder {
        public TextView menuItem;

        public MyViewHolder(View view) {
            super(view);
            menuItem = (TextView) view.findViewById(R.id.tvMenuItem);

        }
    }

    public MovieAdapter(List<MenuItem> menuItemList) {
        this.menuItemList = menuItemList;
    }

    @Override
    public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View itemView = LayoutInflater.from(parent.getContext())
                .inflate(R.layout.menu_item_row, parent, false);

        return new MyViewHolder(itemView);
    }

    @Override
    public void onBindViewHolder(MyViewHolder holder, int position) {
        MenuItem menu = menuItemList.get(position);
        holder.menuItem.setText(menu.getMenuItem());

    }

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

}

try with

@Override
public void onBindViewHolder(MyViewHolder holder, final int position) {
    MenuItem menu = menuItemList.get(position);
    holder.menuItem.setText(menu.getMenuItem());
}

final int position will give informations that textView inside cannot be changed

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM