首页 > 解决方案 > 从函数/方法中设置“android:text”值

问题描述

理论上实现存储在远程数据库中的多文化。

在Android中,我们有以下内容:

 <TextView
        android:id="@+id/loginlabel"
        android:layout_gravity="center"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="25sp"
        android:textStyle="bold"
        android:layout_marginTop="5dp"
        android:text="@string/login" />

并且正在使用文件text中的属性值。loginstring.xml

现在我的问题是:在属性的活动 xml 中android:text,我有什么方法可以调用函数/方法(它甚至可以来自静态类)吗?一个有一些业务逻辑并且仍然返回一个字符串的地方。

我知道我可以在我的活动 java 文件中轻松使用以下类型的代码:

TextView loginlabel = (TextView) findViewById(R.id.loginlabel);
loginlabel.setText( GetMyText(R.id.loginlabel) );

但是我试图避免将其写成“百万次”,因为我的 strings.xml 上有几个活动和数百个值。

对于附加信息,我的目的如下:

标签: javaandroidmobile

解决方案


这在过去对我有用。

public class MyTextView extends TextView {
    public MyTextView(Context context) {
        super(context);
    }

    public MyTextView(Context context, AttributeSet attrs) {
        super(context, attrs);

        setText(yourMethodWithBusinessLogic());
    }
}

不要忘记用这个自定义的替换你的普通文本视图。为方便起见,按 CTRL+SHFT+R。

希望这可以帮助。


推荐阅读