我正在开发一个Android应用程序。应用程序应该有项目列表。它看起来有点如下:
问题是我需要以上述方式列出大约40个项目。我可以使用xml文件中的相对布局来做到这一点。但它太长了。例如,仅创建3个项目,我的代码看起来很像下面(更不用说40):
<?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"
android:background="@drawable/tvb" >
<ImageView
android:id="@+id/image_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="3dp"
android:adjustViewBounds="true"
android:maxHeight="60dp"
android:maxWidth="100dp"
android:scaleType="fitCenter"
android:src="@drawable/tomato" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/image_view"
android:text="Tomato"
android:textColor="#000000"
android:textSize="25dp"
android:textStyle="bold" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:text="20gm"
android:textColor="#000000"
android:textSize="20dp"
android:textStyle="bold" />
</RelativeLayout>
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/tvb" >
<ImageView
android:id="@+id/image_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="3dp"
android:adjustViewBounds="true"
android:maxHeight="60dp"
android:maxWidth="100dp"
android:scaleType="fitCenter"
android:src="@drawable/begun" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/image_view"
android:text="Begun"
android:textColor="#000000"
android:textSize="25dp"
android:textStyle="bold" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:text="45gm"
android:textColor="#000000"
android:textSize="20dp"
android:textStyle="bold" />
</RelativeLayout>
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/tvb" >
<ImageView
android:id="@+id/image_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="3dp"
android:adjustViewBounds="true"
android:maxHeight="60dp"
android:maxWidth="100dp"
android:scaleType="fitCenter"
android:src="@drawable/potol" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/image_view"
android:text="Potol"
android:textColor="#000000"
android:textSize="25dp"
android:textStyle="bold" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:text="35gm"
android:textColor="#000000"
android:textSize="20dp"
android:textStyle="bold" />
</RelativeLayout>
</LinearLayout>
但是我可以复制并粘贴它,然后休息37项。但这真的很有效率。这意味着获取xml文件太长了...它真的很有效...... 再次在java中执行它可能会减慢代码速度。因为我也需要为每个列表项添加图像。
我期待一个好的指导方针。有人可以建议吗?
答案 0 :(得分:2)
将ListView与ListViewAdapter一起使用。 这是一本优秀而完整的教程http://www.vogella.com/articles/AndroidListView/article.html
答案 1 :(得分:0)
您可以为行创建单独的布局xml,然后根据需要将其包含在主布局中.-
<强> _row.xml 强>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/tvb" >
<ImageView
android:id="@+id/image_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="3dp"
android:adjustViewBounds="true"
android:maxHeight="60dp"
android:maxWidth="100dp"
android:scaleType="fitCenter"
android:src="@drawable/tomato" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/image_view"
android:text="Tomato"
android:textColor="#000000"
android:textSize="25dp"
android:textStyle="bold" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:text="20gm"
android:textColor="#000000"
android:textSize="20dp"
android:textStyle="bold" />
</RelativeLayout>
<强> main_layout.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" >
<include
android:id="@+id/row1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
layout="@layout/_row" />
<include
android:id="@+id/row2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
layout="@layout/_row" />
...
</LinearLayout>
请注意,对于动态列表,最好选择ListView
,或者如果您的列表是“静态”,则至少需要使用ScrollView
。