我的应用程序中有一个 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
中的第一项,但它是手动选择的。
最佳答案
你有没有在你的 Activity 中尝试过这个:
recyclerView.findViewHolderForAdapterPosition(0).itemView.performClick()
关于android - 如何从 RecyclerView 中自动选择第一项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50989090/