从函数/方法中设置“ android:text”值

时间:2018-06-28 08:25:37

标签: java android mobile

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

在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正在使用文件login中属性string.xml的值。

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

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

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

但是,由于我的strings.xml上有多个活动和数百个值,因此我试图避免写“一百万次”。

有关入学信息,我的目的是:

  • 在应用程序启动时,我读取了所有string.xml并连接到我的远程服务器(具有数据库),并验证是否所有字符串都插入了该数据库中。
  • 使用string.xml中该属性的默认值插入缺少的属性。
  • 现在,在另一个远程系统中,客户端可以动态创建此属性的新区域性和翻译。
  • 回到android,我加载了当前可用的区域性列表,还从数据库中加载了值(翻译)。唯一缺少它的是将它们“注入”到我使用“字符串”值的位置。

1 个答案:

答案 0 :(得分:1)

这过去对我有用。

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。

希望这会有所帮助。