0

是否有可能有一个布局,可以有静态文本,旁边是来自数据库的文本,在不同的按钮点击时被调用。

所以我在 1 个活动上有 10 个图像按钮,当单击一个新活动时,会启动一个新活动并出现一个列表视图。一旦用户选择那里,我希望出现一个包含静态文本的布局,即床、宠物、视图。然后我调用的数据库中的信息将放在文本旁边,即 2 用于床,没有宠物,4 星视图。但是如果可以的话,我希望能够在所有图像按钮上使用这种布局,它只是我需要更改和调用的右侧数据更改。

我在网上四处寻找,但找不到我需要的东西。

http://img443.imageshack.us/img443/3797/ic5l.png

4

1 回答 1

0

如果您将拥有超过大约 10 个静态文本 + 数据库文本,那么您应该使用列表视图。您将需要编写一个自定义列表适配器来扩展布局文件,如下所示。您想要一个列表视图的原因是因为它回收视图以提高效率。

对于膨胀的 listitem xml:

<LinearLayout
    ..etc >
    <TextView
        android:id="@+id/mTextViewStatic"
        android:text="text you set statically later for each item">
    </TextView>

    <TextView
        android:id="@+id/mTextViewDb"
        android:text="text you set vis db later for each item">
    </TextView>
<LinearLayout> 

如果您只有几个文本项,只需扩展布局并将其添加到另一个布局。

<LinearLayout        
    ..etc >
    <ImageView>
        image properties
    </ImageView>

    <LinearLayout
         android:id="@+id/mTextLayout"
         properties..>

    </LinearLayout>
<LinearLayout>  

然后您可以通过以下方式将其手动添加到列表视图之外:

LinearLayout mTextLayout = (LinearLayout) findViewById(R.layout.mTextLayout);
//add multiple instances of the "listItem" xml
for(int i=0; i<10; i++){
    LinearLayout listItem = inflater.inflate(theListItemAbove);
    TextView tvStatic = listItem.findViewById(R.id.mTextViewStatic);
    tvStatic.setText("my static text");
    TextView tvDb = listItem.findViewById(R.id.mTextViewDb);
    tvStatic.setText(db.getStuff());
    mTextLayout.addView(listItem);
}
于 2013-07-02T19:09:54.953 回答