用android studio写出一个使用RecyclerView的范例
时间: 2023-07-20 22:28:33 浏览: 167
好的,以下是一个使用RecyclerView的基本范例,它展示了一个简单的列表,列表中的每项都包含一个文本和一个图像:
1. 首先,在你的Android Studio项目中添加RecyclerView依赖:
```
implementation 'androidx.recyclerview:recyclerview:1.1.0'
```
2. 创建一个RecyclerView布局文件和一个列表项布局文件。在这个例子中,我们将使用LinearLayoutManager来实现垂直滚动的列表。
`activity_main.xml`:
```
<?xml version="1.0" encoding="utf-8"?>
<androidx.recyclerview.widget.RecyclerView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/recyclerView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/white" />
```
`list_item.xml`:
```
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:padding="16dp">
<ImageView
android:id="@+id/imageView"
android:layout_width="48dp"
android:layout_height="48dp"
android:src="@drawable/ic_launcher_background" />
<TextView
android:id="@+id/textView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:text="List Item"
android:textColor="@android:color/black"
android:textSize="16sp" />
</LinearLayout>
```
3. 创建一个列表项ViewHolder类,用于绑定列表项布局文件中的View。
`ListItemViewHolder.java`:
```
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
public class ListItemViewHolder extends RecyclerView.ViewHolder {
private ImageView imageView;
private TextView textView;
public ListItemViewHolder(@NonNull View itemView) {
super(itemView);
imageView = itemView.findViewById(R.id.imageView);
textView = itemView.findViewById(R.id.textView);
}
public void bind(ListItem item) {
imageView.setImageResource(item.getImageResource());
textView.setText(item.getText());
}
}
```
4. 创建一个列表项数据类,用于存储每一个列表项的数据。
`ListItem.java`:
```
public class ListItem {
private int imageResource;
private String text;
public ListItem(int imageResource, String text) {
this.imageResource = imageResource;
this.text = text;
}
public int getImageResource() {
return imageResource;
}
public String getText() {
return text;
}
}
```
5. 创建一个RecyclerView适配器类,用于绑定列表项数据和ViewHolder。
`ListAdapter.java`:
```
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import java.util.List;
public class ListAdapter extends RecyclerView.Adapter<ListItemViewHolder> {
private List<ListItem> listItems;
public ListAdapter(List<ListItem> listItems) {
this.listItems = listItems;
}
@NonNull
@Override
public ListItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext())
.inflate(R.layout.list_item, parent, false);
return new ListItemViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull ListItemViewHolder holder, int position) {
holder.bind(listItems.get(position));
}
@Override
public int getItemCount() {
return listItems.size();
}
}
```
6. 在MainActivity中使用RecyclerView并设置适配器。
`MainActivity.java`:
```
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity {
private RecyclerView recyclerView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
recyclerView = findViewById(R.id.recyclerView);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
List<ListItem> listItems = new ArrayList<>();
listItems.add(new ListItem(R.drawable.ic_launcher_background, "List Item 1"));
listItems.add(new ListItem(R.drawable.ic_launcher_background, "List Item 2"));
listItems.add(new ListItem(R.drawable.ic_launcher_background, "List Item 3"));
ListAdapter adapter = new ListAdapter(listItems);
recyclerView.setAdapter(adapter);
}
}
```
这样就完成了一个简单的使用RecyclerView的列表。当你运行这个应用程序时,你应该可以看到一个包含三个列表项的列表,每一个列表项都包含一个图像和一个文本。
阅读全文