我可以把pojo从我的orm(柜子)中拿出来,但是我不知道如何编写xml来绑定到这样一个列表。除了在listview或recyclerview中非常简短地提到使用它们之外,所有的例子都是单数的。因此,我尝试在一个xml文件中使用一个单一的绑定,为每个项目再次“膨胀”。代码如下:
private void listThings() {
LinearLayout gList = (LinearLayout) findViewById(R.id.thingList);
gList.removeAllViews();
SQLiteDatabase db = new CGDatabaseHandler(gList.getContext()).getReadableDatabase();
DatabaseCompartment dbc = cupboard().withDatabase(db);
QueryResultIterable<Thing> itr = null;
try {
itr = dbc.query(Thing.class).query();
for (Thing thing : itr) {
// use data binding to create a UI widget for each
LayoutInflater inflater = (LayoutInflater) getBaseContext()
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
ThingDocumentLabelBinding binding = DataBindingUtil.inflate(inflater,
R.layout.thing_document_label, gList, false);
binding.setThing(thing);
//
gList.addView(binding.getRoot());
}
} finally {
// close the cursor
if (itr != null)
itr.close();
}
}
我知道这使用的是线性布局,而不是listview或recyclerview。有什么区别?我根本无法在列表视图中显示任何内容。listview似乎也不支持用removeallviews清除列表。下面是thing\u document\u label.xml文件的xml
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android">
<data>
<variable
name="thing"
type="com.example.Thing"/>
</data>
<TextView android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="20dp"
android:paddingTop="20dp"
android:text="@{@string/thing_document_label(thing.gName, thing.dstName, thing.property3)}"
>
</TextView>
</layout>
我得到的是一个文本视图显示在我的线性布局。我应该看到他们中的六个。在我开始做数据绑定之前,他们就出现了。我刚刚对textview进行了子类化,并在这里显示的相同循环中示例化了它们。这很好,但我在这个应用程序的开始阶段,我想标准化的数据绑定,如果可能的话。
暂无答案!
目前还没有任何答案,快来回答吧!