android - 如何从 RecyclerView 中自动选择第一项?

标签 android android-recyclerview

我的应用程序中有一个 recyclerView,其中包含一个菜单列表,当我按下其中一个时,是否会更改另一个 recyclerView 中的项目,但是当我打开我的 Activity 时没有选择菜单的 recyclerView

所以问题是我如何打开 Activity 并找到所选 recyclerView 的第一项?

我试图通过 Handler 模拟点击,但这让我的应用变慢了。

这是来 self 的适配器的代码:

public class RecyclerViewMenu extends RecyclerView.Adapter<RecyclerViewMenu.MenuViewHolder> {

    private ArrayList<MenuConstructor> menuConstructors;
    private OnItemClickListener onItemClickListener;
    private int selected_position = -1;



    public interface  OnItemClickListener {
        void onItemClick(int position);
    }

    public void setOnItemClickListener(OnItemClickListener listener){
        onItemClickListener = listener;
    }

    @NonNull
    @Override
    public MenuViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.menucard,parent,false);
        return new MenuViewHolder(v, onItemClickListener);

    }


    RecyclerViewMenu(ArrayList<MenuConstructor> menuList){
        menuConstructors = menuList;
    }

    @Override
    public void onBindViewHolder(@NonNull final MenuViewHolder holder, final int position) {
        MenuConstructor currentItem = menuConstructors.get(position);

        if (selected_position == position) {
            holder.itemView.setBackgroundColor(Color.parseColor("#2e7d32"));

        } else {
            holder.itemView.setBackgroundColor(Color.parseColor(currentItem.getSfondoColor()));
        }

        holder.textView.setText(currentItem.getDesk());
        holder.textView.setTextColor(Color.parseColor(currentItem.getFontColor()));




    }

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

    public class MenuViewHolder extends RecyclerView.ViewHolder {

        public TextView textView;

        MenuViewHolder(View itemView, final OnItemClickListener listener) {
            super(itemView);

            textView = itemView.findViewById(R.id.ButtonName);

            itemView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                        if(listener != null){
                            int position = getAdapterPosition();
                            if (position != RecyclerView.NO_POSITION){
                                listener.onItemClick(position);
                                selected_position = position;
                                notifyDataSetChanged();
                            }
                        }


                }
            });



        }
    }

}

这是我的 Activity 的屏幕截图,您可以看到“CICCIO”是我在 recyclerView 中的第一项,但它是手动选择的。

enter image description here

最佳答案

你有没有在你的 Activity 中尝试过这个:

recyclerView.findViewHolderForAdapterPosition(0).itemView.performClick()

关于android - 如何从 RecyclerView 中自动选择第一项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50989090/

相关文章:

android - 单击单选按钮Android时刷新textview

java - android从数据库中获取值的问题

android - 如何设置启动画面一直持续到数据库加载?

android - R 无法解析为变量 --

android - 如何在 Android TV 上移动网格项?

android - 如何更新/刷新 RecyclerView 中的特定项目

java - 在 Android 上滚动 RecyclerView 时如何修复计时器?

Android - 如何从 MainActivity 中的 RecyclerView 检索 EditText 值

android - 在 RecyclerView 小部件中使用自定义 View

android - 如何在Android中定义Spannable的顺序(setPriority)