【问题标题】:Customized setText function in xml androidxml android中自定义的setText函数
【发布时间】:2018-08-28 14:04:39
【问题描述】:

我使用 MathJax 库在我的金融应用程序中将字符串格式化为漂亮的数学公式。它工作得很好,但我现在对代码不满意。我所做的是获取每个 mathjaxview 的实例,然后在库中使用自定义的 setText 函数,只需在源代码中:

     final MathJaxView mathJaxViewStockCall = findViewById(R.id.mathjax_stock_callview_id);
    final MathJaxView mathJaxViewStockPut = findViewById(R.id.mathjax_stock_putview_id);
    final MathJaxView mathJaxViewD1Stock = findViewById(R.id.mathjax_stock_d1_view_id);
    final MathJaxView mathJaxViewD2Stock = findViewById(R.id.mathjax_stock_d2_view_id); 


        String call_stock = "$\\ c = SN(d_1)  -Xe^{-r(T-t)} N(d_2)$";
    String put_stock = "$\\ p = Xe^{-r(T-t)} N(-d_2) - SN(-d_1)$";
    mathJaxViewStockCall.setText(call_stock);
    mathJaxViewStockPut.setText(put_stock);

    //d1, d1 aktie
    String d1_stock = "$ d_1 = \\frac{ln(S/X) + (r + \\sigma^2/2)(T - t)}{\\sigma \\sqrt {T-t}}$";
    String d2_stock = "$ d_2 = \\frac{ln(S/X) + (r - \\sigma^2/2)(T - t)}{\\sigma \\sqrt {T-t}}$";
    String d2_abbrev_stock = "$ = d_1 - \\sigma \\sqrt {T-t}$";
    mathJaxViewD1Stock.setText(d1_stock);
    mathJaxViewD2Stock.setText(d2_stock);
    mathJaxViewD2AbbrevStock.setText(d2_abbrev_stock);

我想做的是在 xml 文件中使用自定义(覆盖)的 setText 方法,例如:

    <io.github.sidvenu.mathjaxview.MathJaxView
            android:id="@+id/mathjax_stock_callview_id"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            .... use the customized settext here
            />

因为那时我可以将所有 mathjax 原始公式放在 values/string-folder 中,然后通过

@string/.....

【问题讨论】:

    标签: android xml settext


    【解决方案1】:

    您可以使用Android's Data Binding library,然后为setText() 属性创建您自己的Binding Adapter 实现android:text(或者您可以使用自己的属性来代替 - 这实际上并不重要,除非您有特殊用例在您的应用程序中)。然后将所有代码放入所述适配器中,就完成了。这样,您将不再需要显式执行代码来填充您的小部件,所有这些都通过数据绑定生成的代码“在后台”进行处理。

    【讨论】:

    • 谢谢你会调查这个 - 顺便说一句,它可以通过使用 数据绑定库 来提高性能吗?
    • 不,这不是数据绑定的用途。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-31
    • 1970-01-01
    • 2015-09-21
    • 1970-01-01
    相关资源
    最近更新 更多