RecyclerView只显示一条数据问题》》》》》》》》》》

今天项目需要用到了RecyclerView 一切都搞定后, 运行发现只有一条数据,突然就懵逼了, 各种查。还是不行,就差换成ListView了。

经过半个小时的努力终于解决了。

先看下我当时是怎么写的吧,初始化item  布局文件的时候, 我是这样写的。

@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType)
{
    View rootView=LayoutInflater.from(context).inflate(R.layout.item_hp_fk_recycler,parent,false);
    return new MyViewHolder(rootView);
}

用的V7 23里面的RecyclerView

compile 'com.android.support:appcompat-v7:23.4.0'

其他地方写法都是一样的。

解决方法:

    1. 更换库 换一个23 以下的库。
    2. item 初始的时候  给两个参数,第二个参数为空 ,如下:
View rootView=LayoutInflater.from(context).inflate(R.layout.item_hp_fk_recycler,null);

这样就可以解决问题。

RecyclerView默认显示一条数据需要进行两个步骤: 1. 在Adapter的构造函数中设置默认选中的位置 在RecyclerView的Adapter中,可以在构造函数中设置默认选中的位置。例如,可以定义一个变量来保存当前选中的位置,并在构造函数中将其初始化为0,表示选中第一条数据。 ``` public class MyAdapter extends RecyclerView.Adapter<MyViewHolder> { private int selectedPosition = 0; // 默认选中第一条数据 public MyAdapter() { // ... } // ... } ``` 2. 在ViewHolder的构造函数中设置点击事件 在ViewHolder的构造函数中,可以设置点击事件,当用户点击某个条目时,将该条目的位置保存到selectedPosition变量中,并更新UI。 ``` public class MyViewHolder extends RecyclerView.ViewHolder { private TextView mTextView; public MyViewHolder(View itemView) { super(itemView); mTextView = itemView.findViewById(R.id.text_view); // 设置点击事件 itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { int position = getAdapterPosition(); selectedPosition = position; notifyDataSetChanged(); } }); } public void bindData(String data) { mTextView.setText(data); // 根据选中状态更新UI if (getAdapterPosition() == selectedPosition) { itemView.setBackgroundColor(Color.RED); } else { itemView.setBackgroundColor(Color.WHITE); } } } ``` 在bindData方法中,根据选中状态更新UI。如果当前条目是选中的,则将背景色设置为红色,否则设置为白色。 最后,在Activity或Fragment中,创建RecyclerView的实例,设置Adapter并显示即可。 ``` public class MyActivity extends AppCompatActivity { private RecyclerView mRecyclerView; private MyAdapter mAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mRecyclerView = findViewById(R.id.recycler_view); mAdapter = new MyAdapter(); mRecyclerView.setLayoutManager(new LinearLayoutManager(this)); mRecyclerView.setAdapter(mAdapter); } } ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值