将布局xml文件中的textView文本设置为远程配置默认值

时间:2019-09-10 15:32:57

标签: xml firebase android-layout firebase-remote-config

我有一个用例,我需要在不使用textView.setText()方法的情况下直接在布局xml文件的文本视图中存储存储在远程配置xml中的默认值

我知道我可以简单地在Java代码中获取值,然后使用setText()方法将其设置为textview。但是,是否有一种方法可以获取默认的远程配置值并从android:text="@string/txt"这样的布局XML存储在textview中?

这是我的远程配置默认xml

<?xml version="1.0" encoding="utf-8"?>

<defaultsMap>
    <entry>
        <key>main_activation_cost</key>
        <value>1000</value>
    </entry>
    <entry>
        <key>discount_activation_cost</key>
        <value>500</value>
    </entry>
    <entry>
        <key>total_referral_count</key>
        <value>5</value>
    </entry>
</defaultsMap>

2 个答案:

答案 0 :(得分:1)

无法简单地在Android XML布局中指定Remote Config参数。您将必须编写代码来获取参数,然后使用该数据填充视图。

答案 1 :(得分:0)

Yes there is a way to bind strings from XML

Declare your XML like below

<layout xmlns...>

<data>

    <import type="packagename.constants.IConfigConstants" /> //your remote config 
    constants file

        <variable
            name="firebaseConfig"
            type="com.google.firebase.remoteconfig.FirebaseRemoteConfig" />

</data>

    <androidx.appcompat.widget.AppCompatTextView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center_vertical"                                 
    android:layout_marginStart="@dimen/margin_medium"                        
    android:text="@{firebaseConfig.getInstance().getString(IConfigConstants.STRING_KEY)}" />