android - 来自 ArrayList 类的列表视图
问题描述
我试图弄清楚如何将存储在单独类中的 ArrayList 的项目显示到 ListView 中。我整天都在查找它,但问题是我找不到像这样的东西,我在其中创建了一个不同的类来存储 ArrayList。这是我的实习任务,他们要求我使用本地数据库或对其进行硬编码,因此我选择对其进行硬编码。
import com.mircea.bookapp.Book;
import java.util.ArrayList;
public class Books
{
private ArrayList<Book> booklist;
public Books()
{
booklist = new ArrayList<Book>();
booklist.add(new Book("In Search of Lost Time", "Marcel Proust", 1913, "Modernist"));
booklist.add(new Book("Ulysses", "James Joyce", 1922, "Modernist novel"));
booklist.add(new Book("Don Quixote", "Miguel de Cervantes", 1612, "Novel"));
booklist.add(new Book("The Great Gatsby", "F. Scott Fitzgerald", 1925, "Tragedy"));
booklist.add(new Book("One Hundred Years Of Solitude", "Gabriel Garcia Marquez", 1967, "Magic realism"));
}
public Book getBook(int index)
{
return this.booklist.get(index);
}
}
这是我想从中获取 ListView 信息的类的代码。
解决方案
在您的 MainActivity onCreate 方法中:
ArrayList<String> books = new ArrayList<>();
//here You have to load all books from Books class as a string to this array
ListView list = (ListView) findViewById(R.id.listView);
ArrayAdapter adapter = new ArrayAdapter(this, R.layout.list_item_layout, books);
list.setAdapter(adapter);
向资源/布局添加此文件。(这里可以修改ListView中的行样式)
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="50dp"
android:textSize="20sp"
android:textColor="@color/colorPrimaryDark"
android:textAlignment="center"
android:gravity="center">
</TextView>
您还可以使用自定义样式,例如
ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, books);
推荐阅读
- javascript - JavaScript 数组表达式在一行中返回对象字面量
- authentication - 如何捕获存在隐藏 SAML POST 的请求的 SAML 响应?
- android - 使用 Room.inMemoryDatabaseBuilder() 的完美用例是什么?
- javascript - 汇总异常以保留模块
- sql - SQL 查询以显示没有特定记录的项目
- angular - 使用 Docker 在 nginx 中部署时,角度未找到资源
- javascript - 通过jquery添加和删除类到自动生成的div?
- javascript - 如何在 Javascript 中检索 Blogger JSON 数据
- apache-spark - 从 Spark UI SQL 选项卡获取查询 DAG 数据的任何 API
- php - PHP ...使用forloop显示数组(调查结果)