我应该创建一个表,如下面的链接所示,我想以两种方式实现它。
我应该以静态方式创建一个带边框的表并动态更新内容,我的意思是第一列中的静态月份和使用活动的第二列中的动态值。
我可以通过提供活动的月份名称和值来动态设置两列。
我的问题是:
如何使用白色背景和边框创建此表,如下所示?由于我无法发现任何包含白色背景和边框的博客。
如何从活动中为表格的每个单元格提供动态值。
答案 0 :(得分:2)
使用此代码: -
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item>
<shape android:shape="rectangle" >
<solid android:color="#B8B9B1" />
</shape>
</item>
<item
android:bottom="3px"
android:left="3px"
android:right="3px"
android:top="3px">
<shape android:shape="rectangle" >
<solid android:color="#FFFFFF" />
</shape>
</item>
</layer-list>
<TableLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/my_drawable"
android:padding="5dp" >
<TableRow
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/home"
android:layout_width="0dp"
android:layout_weight="1"
android:background="@drawable/my_drawable"
android:gravity="center"
android:padding="15dip"
android:text="Months" />
<TextView
android:id="@+id/status"
android:layout_width="0dp"
android:layout_weight="1"
android:background="@drawable/my_drawable"
android:gravity="center"
android:padding="15dip"
android:text="Number of Visits" />
</TableRow>
<TableRow
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:layout_width="0dp"
android:layout_weight="1"
android:background="@drawable/my_drawable"
android:gravity="center"
android:padding="15dip"
android:text="January" />
<TextView
android:layout_width="0dp"
android:layout_weight="1"
android:background="@drawable/my_drawable"
android:gravity="center"
android:padding="15dip"
android:text="1" />
</TableRow>
<TableRow
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:layout_width="0dp"
android:layout_weight="1"
android:background="@drawable/my_drawable"
android:gravity="center"
android:padding="15dip"
android:text="Februrary" />
<TextView
android:layout_width="0dp"
android:layout_weight="1"
android:background="@drawable/my_drawable"
android:gravity="center"
android:padding="15dip"
android:text="" />
</TableRow>
</TableLayout>
我刚刚添加了3行。我只是告诉你如何操作。 对于白色边框以及创建Layer-list drawable并将其设置为tablelayout所需的所有内容。 享受..!
答案 1 :(得分:1)
有很多方法可以做到这一点...... 我能想到的最好的就是使用ListView 然后使用9补丁为其添加边框 另外9个补丁可以由其(自定义)行元素使用(实际上是两个textview)。
这里是外部和内部边框所需的9个补丁:
(外部 - 表格边框)
(内部 - 单元格边框)
将这些图像保存在res / drawable文件夹中,扩展名为 .9.png
然后将它们添加为您的android:background属性。
关于如何制作自定义ListView,在Google上搜索 - 有很多例子。
答案 2 :(得分:0)
与Klaus66一样,有很多方法可以做到。
当我遇到类似的情况时,我在xml中创建了相应的表格布局,现在是棘手的部分(因为你没有CSS中的表格边框),你可以使用纯xml样式和drawable创建具有背景和边框的表格单元格。
尝试谷歌搜索列表图层,这是我使用的示例:(表格单元格底部和左边框1dp宽度)
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item>
<shape android:shape="rectangle">
<solid android:color="#004536" />
</shape>
</item>
<item android:left="1dp" android:bottom="1dp" >
<shape android:shape="rectangle">
<solid android:color="#25272f" />
</shape>
</item>
</layer-list>
只需将此drawable设置为表格单元格的背景。(您的行中的textView-s,列......)。
编辑1:至于为您的单元格提供值,在您的活动中使用findViewById(R.id ...)来使您在布局中使用的textViews成为您喜欢的地方值。