2

我正在为糖尿病患者制作一个安卓应用程序。在那个应用程序中,我想显示每餐的食物数量,以进行饮食控制。它应该如下所示:

RICE          100gm
POTATO        50gm
FISH          60gm

这些信息将从我的数据库中动态获取。但是我在安排它们时遇到了问题。我希望食物在屏幕左侧对齐,数量在屏幕右侧对齐。如下(点表示屏幕)

|-------------------------------------------------------|
|RICE                                             100gm |
|POTATO                                            50gm |
|FISH                                              60gm |
|-------------------------------------------------------|

为此,我在 xml 文件中声明了一个相对布局。代码如下所示:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" >
    </RelativeLayout>

</LinearLayout>

我现在需要做的就是创建 textview 并将它们动态添加到这个相对布局中。但我很困惑如何做到这一点。任何提示请...

最终输出应如下所示:

它应该如下所示

4

1 回答 1

1

我同意@Szymon 的观点,即最好的方法是使用 ListView。但是,如果您不想这样做,我会这样做:

  1. 为要显示的每个项目创建单独的布局。将其设为RelativeLayout,并根据您希望项目的显示方式将所有TextView 放置在那里(alignParentRight / alignParentLeft)。

  2. 通过扩展此新布局动态创建视图,通过在运行时扩展的视图上使用 findViewById() 分配 TextViews 的文本

  3. 将视图添加到 LinearLayout

(编辑:如何做第 2 步:)

LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = inflater.inflate(R.layout.my_item_layout, null);
TextView tv1 = (TextView)view.findViewById(R.id.tv1);
tv1.setText(myText);
于 2013-10-03T01:00:30.190 回答