【问题标题】:How to reference user's input in strings.xml (res/value) Android Studio如何在strings.xml(res/value)Android Studio中引用用户的输入
【发布时间】:2022-01-10 20:51:45
【问题描述】:

我关注的是 Developers.Android codelab tutorial。在我了解到的代码中,您可以在 .xml 布局文件中使用@={}(点表示法访问数据类中的数据)来引用数据..

类似的东西;

        <TextView
            ...
            android:text="@={myName.nickname}"
            ...
            />

但我希望能够在字符串中使用多个输入数据,像这样;

    <string name="bio">Hi, @={myName.nickname}.
        I'm Alexia, I love fish.

        The kind that is alive and swims around in an aquarium or river, or a lake, and definitely the ocean.
        Fun fact is that I have several aquariums and also a river.

        I like eating fish, too. Raw fish. Grilled fish. Smoked fish. Poached fish - not so much.
        And sometimes I even go fishing.
        And even less sometimes, I actually catch something.
        Once, when I was camping in Canada, and very hungry, I even caught a large salmon with my hands.

        I\'ll be happy to teach you @={myName.nickname}, how to make your own aquarium.
        But, @={myName.nickname} you should ask someone else about fishing, though, lol.</string>

但是当我运行它时,它只返回@={myName.nickname} 作为@={myName.nickname},即不是数据,我正在尝试引用,所以请我如何引用strings.xml 值文件。??

感谢您提前提供的帮助...

这是我与此相关的文件,如果您需要任何东西,请告诉我..

数据类:

package com.example.aboutme

data class MyName(var name: String = "", var nickname: String = "")

activity_main.xml;

<layout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools">

    <data>
        <variable
            name="myName"
            type="com.example.aboutme.MyName" />
    </data>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        tools:context=".MainActivity">

        ...

【问题讨论】:

    标签: android string kotlin input


    【解决方案1】:

    格式化文本:

    binding.nameText = context.getString(R.string.bio, myName.nickname)
    

    布局:

    <variable
        name="nameText"
        type="String" />
    ...
    <TextView
        ...
        android:text="@{nameText}"
        ...
    />
    

    字符串:

    <string name="bio">Hi, %s, I'm Alexia</string>
    

    【讨论】:

    • 感谢您的回答.. 我没有得到一些东西.. 我应该更改以前的变量名称和类型,还是创建一个新的?那么我创建的数据类会发生什么?
    • @Edwin 你可以删除之前的变量。将字符串变量(设置binding.nameText = context.getString(R.string.bio, myName.nickname)后为“嗨,昵称,我是Alexia”)设置为TextView
    猜你喜欢
    • 2017-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-04
    • 1970-01-01
    • 2012-02-02
    • 2021-02-14
    相关资源
    最近更新 更多