- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我在 Android 应用程序中工作,我想在我的 TableLayout 中以编程方式添加一个 TableRow。
我有这个 TableLayout:
<TableLayout
android:id="@+id/details_table"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TableRow>
<TextView
android:text="4686"
android:layout_width="wrap_content"
android:layout_column="0"
android:layout_weight="1"
android:textSize="7px"
android:textColor="@color/black" />
<TextView
android:text="sdhiuf osdfh isdhf ihdf"
android:layout_width="wrap_content"
android:layout_column="1"
android:layout_weight="1"
android:textSize="7px"
android:textColor="@color/black" />
<TextView
android:text="2"
android:layout_width="wrap_content"
android:layout_column="2"
android:layout_weight="1"
android:textSize="7px"
android:textColor="@color/black" />
<TextView
android:text="UN"
android:layout_width="wrap_content"
android:layout_column="3"
android:layout_weight="1"
android:textSize="7px"
android:textColor="@color/black" />
</TableRow>
我想以编程方式添加这个 TableRow。
我正在尝试这样的事情:
TableLayout detailsTable = (TableLayout) l.findViewById(R.id.details_table);
for(Nfce_Product nfceProduct : nfceProducts){
TableRow tableRow = new TableRow(getActivity());
TextView tvProductCode = new TextView(getActivity());
tvProductCode.setLayoutParams(new TableRow.LayoutParams(TableLayout.LayoutParams.WRAP_CONTENT, TableLayout.LayoutParams.WRAP_CONTENT, 1f));
tvProductCode.setText(nfceProduct.getProduct_code());
tvProductCode.setTextSize(TypedValue.COMPLEX_UNIT_PX, productDetailsTextSize);
tvProductCode.setTextColor(getResources().getColor(R.color.black));
TextView tvProductDescription = new TextView(getActivity());
tvProductDescription.setLayoutParams(new TableLayout.LayoutParams(TableLayout.LayoutParams.WRAP_CONTENT, TableLayout.LayoutParams.WRAP_CONTENT, 1f));
tvProductDescription.setText(nfceProduct.getProduct_description());
tvProductDescription.setTextSize(TypedValue.COMPLEX_UNIT_PX, productDetailsTextSize);
tvProductDescription.setTextColor(getResources().getColor(R.color.black));
TextView tvProductAmount = new TextView(getActivity());
tvProductAmount.setLayoutParams(new TableLayout.LayoutParams(TableLayout.LayoutParams.WRAP_CONTENT, TableLayout.LayoutParams.WRAP_CONTENT, 1f));
tvProductAmount.setText(String.valueOf(nfceProduct.getAmount()));
tvProductAmount.setTextSize(TypedValue.COMPLEX_UNIT_PX, productDetailsTextSize);
tvProductAmount.setTextColor(getResources().getColor(R.color.black));
TextView tvProductMetric = new TextView(getActivity());
tvProductMetric.setLayoutParams(new TableLayout.LayoutParams(TableLayout.LayoutParams.WRAP_CONTENT, TableLayout.LayoutParams.WRAP_CONTENT, 1f));
tvProductMetric.setText(nfceProduct.getProduct_metric());
tvProductMetric.setTextSize(TypedValue.COMPLEX_UNIT_PX, productDetailsTextSize);
tvProductMetric.setTextColor(getResources().getColor(R.color.black));
tableRow.addView(tvProductCode);
tableRow.addView(tvProductDescription);
tableRow.addView(tvProductAmount);
tableRow.addView(tvProductMetric);
detailsTable.addView(tableRow);
}
最佳答案
Here is my own answer我自己动态创建的 TableRow
问题。我觉得我的回答已经够详细了,你自己的应该没问题吧!我的问题不仅涉及动态创建 TableRows
,还涉及能够触摸每一行并发生一些事情。现在,我比这更进一步,让每个 CELL 都可以单独点击。
编辑:您需要有一个可以访问的单独的 TableRow
XML
文件,与您尝试访问的实际 TableLayout
分开动态填充。
Edit2:我可能应该尝试为您制定一个实际的解决方案,以便您明白我在说什么:
首先,创建(或保留)包含您的TableLayout
的XML
文件。其次,创建一个单独的 TableRow
XML
文件。
(这是您潜在的 tablerow.xml 文件)
<?xml version="1.0" encoding="utf-8"?>
<TableRow xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="?android:attr/listPreferredItemHeight"
android:focusable="true" >
<TextView
android:id="@+id/tableCell1"
android:layout_width="wrap_content"
android:layout_column="0"
android:layout_weight="1"
android:textSize="7px"
android:textColor="@color/black" />
<TextView
android:id="@+id/tableCell2"
android:layout_width="wrap_content"
android:layout_column="1"
android:layout_weight="1"
android:textSize="7px"
android:textColor="@color/black" />
<TextView
android:id="@+id/tableCell3"
android:layout_width="wrap_content"
android:layout_column="2"
android:layout_weight="1"
android:textSize="7px"
android:textColor="@color/black" />
<TextView
android:id="@+id/tableCell4"
android:layout_width="wrap_content"
android:layout_column="3"
android:layout_weight="1"
android:textSize="7px"
android:textColor="@color/black" />
</TableRow>
现在...回到您的实际代码!
for (Nfce_Product nfceProduct : nfceProducts) {
final TableLayout detailsTable = (TableLayout) findViewById(R.id.details_table);
final TableRow tableRow = (TableRow) getLayoutInflater().inflate(R.layout.tablerow, null);
TextView tv;
//Filling in cells
tv = (TextView) tableRow.findViewById(R.id.tableCell1);
tv.setText(nfceProduct.getProduct_code());
tv = (TextView) tableRow.findViewById(R.id.tableCell2);
tv.setText(nfceProduct.getProduct_description());
tv = (TextView) tableRow.findViewById(R.id.tableCell3);
tv.setText(nfceProduct.getAmount());
tv = (TextView) tableRow.findViewById(R.id.tableCell4);
tv.setText(nfceProduct.getProduct_metric());
//Add row to the table
detailsTable.addView(tableRow);
} //End for
如果您仍然需要/想要更改文本大小和颜色,您可以在 setText()
行之后和再次执行 findViewById
之前执行此操作。如果您希望列标题基本上包含代码、说明、金额和指标,请像您目前那样在 TableLayout
中创建一个 TableRow
。以编程方式创建的 TableRows
将排在该“标题”行之后。
关于android - 在 Android 中以编程方式添加 TableRow,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31929511/
我正在开始使用 mongodb。 我已经设置了所有的 mongodb 和 mongoose 配置,它们工作得很好。 以下是项目文件: server.js: const TableRow = requi
我正在开发 Android 应用程序。一个 Activity 有一个像这样的 TableLayout:
我非常接近选择 LinearLayout 替代方案,但没有正确处理这件事有点令人恼火。为了获得最大的灵 active ,我定义了一个只定义了行标题的 TableLayout xml。接下来,我生成了一
我正在将大量书面内容转换为 Android 应用程序上易于阅读的页面。此内容主要由文本和图像组成,但也包括表格。 内容下载为 html,因此我使用 Html.fromHtml() 方法和 URLIma
我正在尝试将 TableRows 添加到 TableLayout,效果非常好。但是,我在布局参数方面遇到了一些问题。 TableRow 中 TextView 之间的间距与我想象的不一样。 我当前的代码
好的,所以我尝试在每次点击按钮时以编程方式将 TableRows 插入到 TableLayout 中。这些行中的每一行都包含一个设置为某个字符串的 TextView。我的问题是,虽然 TableRow
我是新手,很难达到我要求的输出。代码://这段代码在ScrollView里面 Java 代码: setContentView(R.layout.status_view
我在处理 TableRow 显示时发现问题请给我适当的解决方案 在我的 Java 文件中 tr1 = (TableRow)findViewById(R.id.facebook_raw); tr
我有一个包含 3 个 TableRow 的 TableLayout,每个 TableRow 有 3 个 ImageView。每个 ImageView 都有适合比例类型的 fitCenter,以及每个计
所以,我在一个 xml 文件中有一个 TableLayout 和 4 个 TableRow。我还有一个定义 TextView 的 xml 文件,它将插入行中(每行 3 个 TextView)。我希望那
我的布局是这样的:
我有一个 TableLayout,我在其中动态添加行,一开始是空的,我想在用户单击它时在该行中加载一个 xml。 我已经给行赋值了OnClick方法,但是不知道在onclick方法中进入时如何加载xm
如何在 android TableRow 中获取第一列值并将该值传递给下一个 Activity ?例如,在我的 android Activity 中,我有一个 TableRow,每行有 3 列(节点
我正在尝试使用 TableLayout 制作复杂的网格。我设法通过这样的 xml 来实现(网格中的某些框未突出显示): 通过这段代码:
我正在动态生成 TableRow。对于每个 TableRow,一列中有一个 TextView,另一列中有一个 EditText。如何生成行,使 TextView 占据行的一半而 EditText 占据
我有一个 TableRow 和一个 TextView。这是它的 xml。 我想让表格行在触摸按钮时具有淡出效果,反之亦然。我该怎么做? 最佳答案 任何 View(包括 Tabl
我有以下问题跨越动态添加行到 ScrollView 内的 TableLayout。行遵循以下模式: 第 1 行:单元格横跨整个表格 第 2 行:两个单元格 第 3 行:单元格横跨整个表格 ... 第
我正在尝试为 Android 远程控制制作一个 XML 文件。我用过 TableLayout 正如您从屏幕截图中看到的那样,列的大小发生了变化(但所有图像的大小都相同)。问题仅在于那一行。 这是我的代
我当前有以下设置: ' > 这几乎就是我想要编写的代码: function setBGColor() { var table = document.getElemen
我已从源 REST 端点读取 JSON 数据,并将其写入 BigQuery 表。我想让 BigQuery 表属性更具可读性,即。从 src_lat 到 source_latitude 等... 我已经
我是一名优秀的程序员,十分优秀!