用java写一个点击一个按钮recyclerView的布局文件显示CheckBox再点击隐藏的例子
时间: 2024-03-18 16:41:38 浏览: 55
好的,我可以给您提供这样一个示例,但需要先了解您在使用哪个版本的 Android SDK。
以下示例是基于 Android SDK 21 及以上版本的:
1. 创建一个新的布局文件,例如 `recycler_view_item.xml`,其中包含一个 `CheckBox` 和一个 `TextView`,如下所示:
```xml
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<CheckBox
android:id="@+id/check_box"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_centerVertical="true"
android:onClick="onCheckBoxClicked"/>
<TextView
android:id="@+id/text_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toEndOf="@+id/check_box"
android:layout_centerVertical="true"
android:text="Recycler View Item"/>
</RelativeLayout>
```
2. 在您的 `Activity` 中创建一个 `RecyclerView`,并将其与一个 `Adapter` 绑定。在 `Adapter` 中,创建一个 `ViewHolder` 类,用于缓存 `RecyclerView` 中的每个项目视图。在 `ViewHolder` 类中,定义一个 `onCheckBoxClicked()` 方法,该方法在单击 `CheckBox` 时调用。
```java
public class MainActivity 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.setAdapter(mAdapter);
mRecyclerView.setLayoutManager(new LinearLayoutManager(this));
}
private class MyAdapter extends RecyclerView.Adapter<MyViewHolder> {
@NonNull
@Override
public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View itemView = LayoutInflater.from(parent.getContext()).inflate(R.layout.recycler_view_item, parent, false);
return new MyViewHolder(itemView);
}
@Override
public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {
holder.mTextView.setText("Recycler View Item " + position);
}
@Override
public int getItemCount() {
return 10;
}
}
private class MyViewHolder extends RecyclerView.ViewHolder {
private CheckBox mCheckBox;
private TextView mTextView;
private MyViewHolder(View itemView) {
super(itemView);
mCheckBox = itemView.findViewById(R.id.check_box);
mTextView = itemView.findViewById(R.id.text_view);
}
public void onCheckBoxClicked(View view) {
mTextView.setVisibility(mCheckBox.isChecked() ? View.VISIBLE : View.GONE);
}
}
}
```
在上面的代码中,`MyAdapter` 类继承自 `RecyclerView.Adapter<MyViewHolder>`,其中 `MyViewHolder` 是一个自定义的 `ViewHolder` 类。在 `MyAdapter` 中,我们实现了 `onCreateViewHolder()`、`onBindViewHolder()` 和 `getItemCount()` 方法。在 `onCreateViewHolder()` 方法中,我们创建一个 `View` 实例,并将其包装在一个 `MyViewHolder` 对象中。在 `onBindViewHolder()` 方法中,我们设置每个项目视图的文本内容。在 `getItemCount()` 方法中,我们返回 `RecyclerView` 中的项目数。
在 `MyViewHolder` 类中,我们实现了一个 `onCheckBoxClicked()` 方法,该方法在单击 `CheckBox` 时调用。在该方法中,我们检查 `CheckBox` 是否被选中,如果是,则显示 `TextView`,否则隐藏它。
这是一个基本的示例,您可以根据自己的需求进行修改和扩展。
阅读全文