1

我正在编写一个 Android 应用程序,其中有一段代码,它为用户创建了一种插入金额的方法。它包括根据位置设置货币符号和小数点,以及当用户点击点或逗号时将焦点从整数文本框跳转到十进制文本框。

因为我想在我们的应用程序的几个地方重新创建这段代码,所以我想将它与视图的其余部分分开。因此,我创建了一个单独的 xml 文件并将其填充到一个单独的 java 文件中,在该文件中我保留了设置货币等的方法。然后我将它“导入”到一个 xml 文件中,如下所示:

<com.example.android.ui.widget.AmountWidget 
    android:layout_width="fill_parent"
    android:layout_height="wrap_content">
</com.example.android.ui.widget.AmountWidget>

现在,当我需要在一页中多次使用此代码时,就会出现问题。由于 TextEdit 框有一个 id,如果我多次使用这段代码,这个 id 会被重用,它实际上变得无效。

所以我的问题就变成了;如何在每次调用这段代码时以可以为其设置 id 的方式重用一段代码?

4

1 回答 1

2

<include/>在您的 xml 代码上使用。这里有一个官方的例子

编辑

此链接提供更多信息,以覆盖包含布局的 id。

编辑 2

在您的最后评论之后,即使我不知道您项目的完整结构,我的想法是:您可以覆盖idon LayoutXML 文件的 ,并且在代码中您可以EditText使用 switch 案例检查 的父级。

...
<include layout="@layout/your_layout"
         android:id="@id/layout1"/>
<include layout="@layout/your_layout"
         android:id="@id/layout2"/>
<include layout="@layout/your_layout"
         android:id="@id/layout3"/>
...
<include layout="@layout/your_layout"
         android:id="@id/layoutX"/>
...

然后在您的代码中,在您指向 EditText 后使用 case/switch。

顺便说一句,如果你只有几行,你可以避免使用 include;相反,如果您有很多行,请使用ListView

于 2013-10-03T15:04:54.337 回答