代码之家  ›  专栏  ›  技术社区  ›  Javi

向文本视图添加多个字符串

  •  6
  • Javi  · 技术社区  · 15 年前

    例如,我在XML中有一些字符串

    <string name="String1">My String 1</string>
    <string name="String2">My string 2</string>
    

    我想在活动中展示 我的字符串1:我的字符串2

    是否可以添加到同一个文本视图中

    <TextView android:text="@string/String1"/>
    <TextView android:text=": "/>
    <TextView android:text="@string/String2"/>
    

    问题是,如果将它们插入到TableLayout中,它们将被视为单元格,而“:”符号不写在String1旁边(它写在两个字符串的中间)。

    是否可以在XML代码中仅在一个文本视图中加入字符串(而不是以Java编程方式)? 我的意思是有什么语法可以附加字符串,比如

    <TextView android:text="@string/String1+:+@string/String2"/>
    

    谢谢

    4 回复  |  直到 15 年前
        1
  •  9
  •   blindstuff    15 年前

    您不能直接在XML中执行此操作,这是您所能做到的最好的方法:

    <string name="welcome_messages">Hello, %1$s! You have %2$d new messages.</string>
    
    
    Resources res = getResources();
    String text = String.format(res.getString(R.string.welcome_messages), username, mailCount);
    
        2
  •  1
  •   James    15 年前

    我不是100%,但我不认为有可能有超过一个Android:每个文本视图的文本。

    如果要有三个文本视图,则需要向String2(或任何视图具有的 : “:

    android:layout_toRightOf="@id/string1"
    
        3
  •  0
  •   Community Mohan Dere    9 年前

    看到这个 related question 我早些时候问过。

    不能对XML中的字符串执行任何花哨的操作。你需要用Java做这件事。

        4
  •  0
  •   Vit Khudenko    15 年前

    查看API TableRow :

    android:layout_span -定义此子级应跨多少列。

    所以我认为你可以使用smth,比如:

    <TableRow android:layout_span="3">
      <TextView android:id="@+id/your_entire_string" />
    </TableRow>
    

    然后在你 Activity 找到 TextView 按ID填充(“我的字符串1”+“:”+“我的字符串2”)。