Android数据绑定:可以从HashMap绑定值
我将对象的字段(字符串、整数等)绑定到布局文件。例如:Android数据绑定:可以从HashMap绑定值,android,android-databinding,Android,Android Databinding,我将对象的字段(字符串、整数等)绑定到布局文件。例如: <data> <variable name="appState" type="com.example.app.AppState" /> </data> 及 似乎不支持它 但是,我想知道,有没有办法?非常感谢。好的,仔细看一下文档,它是: 如果您HashMap是这样的: public HashMap<String, String
<data>
<variable
name="appState"
type="com.example.app.AppState"
/>
</data>
及
似乎不支持它
但是,我想知道,有没有办法?非常感谢。好的,仔细看一下文档,它是:
如果您HashMap
是这样的:
public HashMap<String, String> thing = new HashMap<String, String>() {{
put("stuff", "yeah");
}};
public HashMap<String, String> getThing() {
return thing;
}
public void setThing(HashMap<String, String> thing) {
this.thing = thing;
}
<data>
<import type="java.util.HashMap"/>
<variable
name="appState"
type="com.example.app.AppState"
/>
</data>
...
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
android:title='@{appState.thing["stuff"]}'
/>
<data>
<import type="java.util.Map"/>
<variable name="map" type="Map<String, String>"/>
</data>
...
android:text="@{map[key]}"
公共HashMap thing=newhashmap(){{
放(“东西”,“耶”);
}};
公共HashMap getting(){
归还物;
}
公共void设置(HashMap设置){
这个;
}
然后,布局文件可以如下所示:
public HashMap<String, String> thing = new HashMap<String, String>() {{
put("stuff", "yeah");
}};
public HashMap<String, String> getThing() {
return thing;
}
public void setThing(HashMap<String, String> thing) {
this.thing = thing;
}
<data>
<import type="java.util.HashMap"/>
<variable
name="appState"
type="com.example.app.AppState"
/>
</data>
...
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
android:title='@{appState.thing["stuff"]}'
/>
<data>
<import type="java.util.Map"/>
<variable name="map" type="Map<String, String>"/>
</data>
...
android:text="@{map[key]}"
...
最简单的方法是:通过在[]
内部提供键,您可以使用[]
操作符直接调用它
如果你有这样一张地图:
public HashMap<String, String> thing = new HashMap<String, String>() {{
put("stuff", "yeah");
}};
public HashMap<String, String> getThing() {
return thing;
}
public void setThing(HashMap<String, String> thing) {
this.thing = thing;
}
<data>
<import type="java.util.HashMap"/>
<variable
name="appState"
type="com.example.app.AppState"
/>
</data>
...
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
android:title='@{appState.thing["stuff"]}'
/>
<data>
<import type="java.util.Map"/>
<variable name="map" type="Map<String, String>"/>
</data>
...
android:text="@{map[key]}"
...
android:text=“@{map[key]}”
资料来源: