Android - 如何在布局中存储额外的隐藏信息(按标签)

时间:2015-07-05 00:33:46

标签: android android-layout android-layout-weight

我有这样的布局 -

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <!-- Linearlaout which acts as ListView in this case -->
    <LinearLayout
        android:id="@+id/Main_View_Reference"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">

        android:contentDescription="This is a container reference for main list items"

    </LinearLayout>
</ScrollView>

另一种用于膨胀&#34; LinearLayout&#34;像这样的布局的一部分,

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@android:color/white"
    android:id="@+id/Level_3_Layout"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/Level_3_Item_Name"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@android:color/background_light"
        android:text="Itame Name"
        android:textColor="@android:color/black"
        android:textSize="18sp" />

    <TextView
        android:id="@+id/Level_3_Item_Price"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@android:color/background_light"
        android:text="Item Price"
        android:textColor="@android:color/black"
        android:textSize="13sp" />

    <View
        android:layout_width="match_parent"
        android:layout_height="1dp"
        android:background="@android:color/darker_gray" />

</LinearLayout>

我想要做的是我想为从第二部分创建的动态膨胀布局分配标签值。

所以,我想用Java为每个创建的(膨胀的)布局设置额外的隐藏信息,以存储一些额外的信息,这样我可以在下次需要它时像HTML的隐藏字段那样检索它们。

android中有什么办法吗?

感谢您的帮助。

3 个答案:

答案 0 :(得分:4)

我不能确定你的'动态'是什么意思,但我想你不仅要分配价值,还要分配你的'隐藏领域'的关键。 如果我的假设是正确的,那么你可以使用这种方法:

yourView.setTag(int id, Object object);

我知道你不愿意使用setTag,但在这个用例中,我认为这是最适合做的事情。请注意int id,使用您可以指定的任意标记(只要它们都具有不同的ID),从而使其非常动态。 如果您想要检索使用上述方法分配的标记,请将其命名为:

yourView.getTag(int id);

希望这有帮助!

如果这仍然不是您想要的,我担心唯一的选择是扩展您想要的View,然后根据您的需要进行自定义。

答案 1 :(得分:1)

对于布局,请使用android:tag="",例如

....
<View 
    android:tag="YOUR_HIDDEN_THINGIE"
    .../>

答案 2 :(得分:1)

或在您调用视图后

View v = findViewBy(R.id.myview);// could be any view widget
v.setTag(myobject);

还要注意,当你在布局中使用android:标签时,当你的布局膨胀时,Tag会一直存在,你可以通过v.getTag()

来检索它