Recyclerview不会膨胀



我正在创建回收器视图。

我有两项活动。

活动A包含recyclerview,活动B包含2个edittext视图。

我在ClickListener上设置了活动B中的按钮,以便编辑文本的输入数据传递到适配器。edittext的这两个输入数据被绑定在对象Arraylist中。顺便说一句,传递数据是有效的,但它不会膨胀。我想知道我做错了什么。

包含回收视图的活动A:

recyclerView = (RecyclerView) findViewById(R.id.rv);
linearLayoutManager = new LinearLayoutManager(this);
recyclerView.setLayoutManager(linearLayoutManager);

ArrayList<MainData> list = (ArrayList<MainData>) getIntent().getSerializableExtra("list");
adapter = new MainAdapter(list);
recyclerView.setAdapter(adapter);
adapter.notifyDataSetChanged();

包含EditText视图的活动B:

Button button = (Button) findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
LinearLayout itemView = (LinearLayout) findViewById(R.id.rv);
Intent intent = new Intent(upload.this, MainActivity.class);
ArrayList<MainData> list = new ArrayList<MainData>();
EditText edit = (EditText) findViewById(R.id.edittext_name);
EditText edit_main = (EditText) findViewById(R.id.edittext_main);
list.add(new MainData(edit.getText().toString(), edit_main.getText().toString()));
intent.putExtra("list",list);
startActivity(intent);
}
});

主数据:

public MainData(String tv_name, String tv_content) {
this.tv_name = tv_name;
this.tv_content = tv_content;
}

适配器:

private ArrayList<MainData> list;
public MainAdapter(ArrayList<MainData> list) {
this.list = list;
}
@NonNull
@Override
public MainAdapter.CustomViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int 
viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_list, 
parent, false);
CustomViewHolder holder = new CustomViewHolder(view);
return holder;
}
@Override
public void onBindViewHolder(@NonNull MainAdapter.CustomViewHolder holder, int position) {
holder.tv_name.setText(list.get(position).getTv_name());
holder.tv_content.setText(list.get(position).getTv_content());
holder.itemView.setTag(position);
@Override
public int getItemCount() {
return (null != list ? list.size() : 0);
}

Recycler视图xml文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scrollbarFadeDuration="0"
android:scrollbarSize="5dp"
android:scrollbarThumbVertical="@color/black"
android:scrollbars="vertical"
android:layout_weight="1"/>

<Button
android:id="@+id/btn"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="8"
android:text="move"
android:textSize="30sp"/>

尝试将getItemCount方法更改为下的方法

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

最新更新