gpt4 book ai didi

Android RecyclerView + ActiveAndroid

转载 作者:太空宇宙 更新时间:2023-11-03 11:07:32 24 4
gpt4 key购买 nike

使用 ActiveAndroid ORM 填充 RecyclerView 和跟踪数据更改的首选方法是什么?

我有 asked a question最近关于这个话题。但是它太冗长了,而且人们又很懒惰,几乎没有人会读到最后。

它的本质:有人有一个通过 ActiveAndroid 从数据库填充 RecyclerView 的工作示例吗?

最佳答案

我曾经使用过这个库,但使用的是 ListView。我认为这段代码应该与 RecyclerView 一起工作:

/* The database */
@Table(name = "Person")
public class Person extends Model {
@Column(name = "Name")
public String name;
@Column(name = "Age")
public int age;
}


/* Your MainActivity */

List<Person> list = new ArrayList<>();
private RecyclerView rv;

/* Activity onCreate */
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity);

list = getList(15);
rv = (RecyclerView) findViewById(R.id.recycler_view);
rv.setLayoutManager(new LinearLayoutManager(this));
rv.setAdapter(new Adapter());

}

private List<Person> getList(int age){
return new Select()
.from(Person.class)
.where("Age = ?", age)
.orderBy(/* order you like */)
.executeSingle();
}

private class Adapter extends RecyclerView.Adapter<Adapter.Holder> {

@Override
public Adapter onCreateViewHolder(ViewGroup parent, int viewType) {
// you should inflate the layout you want be laid in every row of the recycler view. Im just inflating a text view for convinence
return new Holder(LayoutInflater.from(parent.getContext()).inflate(android.R.layout.simple_list_item_1, parent, false));
}

@Override
public void onBindViewHolder(Holder holder, int position) {
// assign values to all view in the holder.
holder.tv.setText(list.get(position).name);
}

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

public class Holder extends RecyclerView.ViewHolder {
// here you load all the view in your layout
TextView tv;

public Holder(View itemView) {
super(itemView);
tv = (TextView) itemView;
}
}
}

在这里,我假设您已经在数据库中创建并存储了值,因为问题只要求从数据库中填充。

我还没有测试过,但我认为它应该可以工作。

关于Android RecyclerView + ActiveAndroid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31296754/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com