在 TableLayout 中以编程方式设置列数

2023-12-23

我有一个 XML 布局,其中包含一个具有未知数量的 TableRows 的 TableLayout... 行数将在运行时建立,但我所知道的是我想要两列...... 所以我对此有几个问题:

    - is there a way to set the whole TableLayout to have 2 columns ?

- 有没有一种方法以编程方式为(在运行时)创建的 TableRows 提供一个 id,该 ID 将放置在 TableLayout 中,以便我稍后可以从软件的其他部分引用它们?


您可以通过 XML 部件和 LayoutInflater 构建表行。假设您将其作为 table_cell.xml:

<TextView android:id="@+id/text"
    android:text="woot" />

这就是你的 table_row.xml (除非你对 TableRow 做了一些奇特的事情,否则你可能不需要将它放入它自己的 XML 文件中,而只需以编程方式创建它。结果将是相同的):

<TableRow />

假设您的 TableLayout 引用称为“table”,您可以执行以下操作:

TableLayout table = (TableLayout)findViewById(R.id.table);
LayoutInflater inflater = getLayoutInflater();

for(int i = 0; i < 5; i++) {
    TableRow row = (TableRow)inflater.inflate(R.layout.table_row, table, false);
    View v = (View)inflater.inflate(R.layout.table_cell, row, false);
    row.addView(v);
    v = (View)inflater.inflate(R.layout.table_cell, row, false);
    row.addView(v);

    // you can store your reference to `row` here for later use
    table.addView(row);
}

使用这种技术,您仍然可以在 XML 中设置布局,从而更容易阅读/组织/编辑,并且您仍然可以通过编程控制表中的列数和行数。您还可以存储对每个表行的引用以供以后使用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 TableLayout 中以编程方式设置列数 的相关文章

  • Android 如何使用意图发送文本和图像或任何对象?

    我知道可以与以下人员分享短信ACTION SEND通过指定Intent EXTRA TEXT 同样的方法适用于图像 Intent EXTRA STREAM 但是如何将文本和图像添加到同一意图呢 您可以通过意图发送文本和图像 例如 如果您要发
  • 使用 xamarin 和 c# 更改 android 上的cultureinfo

    我调用自定义方法来动态地将当前文化信息切换为法语 fr 像这样 但在调用该方法后 我的 Android 应用程序仍然使用默认区域性 en 但在调试模式下 区域性似乎没问题 我的文件夹没问题 我两者都有 并且字符串值已配置 文件夹 resou
  • 避免 XferMode 替换画布上的颜色

    我正在尝试替换使用在画布上绘制的内容的颜色避免Xfer模式 http developer android com reference android graphics AvoidXfermode html 从 android 文档来看 它看
  • 更新房间迁移的行

    是否可以编写迁移来更新某个表的所有先前数据 我正在为我的房间数据开发加密 如果我可以在迁移后加密所有行 那就太好了 那么 在定义迁移时 您可以访问支持SQLite数据库 https developer android com referen
  • 文件 API - Phonegap?

    谁能解释如何使用适用于 Android 的 Phonegap 文件 API 在页面上列出文件文件夹 我想列出所有 mp3如果可能的话 请阅读文件 但已阅读所有phonegap文档 http docs phonegap com en 1 0
  • 清除未接来电并清除 Android 栏中的通知

    使用此代码 我设法将所有未接来电标记为已读 ContentValues values new ContentValues values put Calls NEW 0 if android os Build VERSION SDK INT
  • 使用书法库的某些活动使用不同的字体

    我在用书法 https github com chrisjenx Calligraphy在我的应用程序中使用自定义字体的库 我使用默认字体为整个应用程序设置了自定义字体CalligraphyConfig in my Application类
  • Android studio 添加外部项目到 build.gradle

    我有一个示例项目 具有以下设置 root Pure Java Lib Android Test Lib Android Test Project 哪里 测试项目 取决于 Test Lib 最后一个取决于 纯Java库 编译项目并启动此设置效
  • Appcelerator 与 Android SDK

    我一直在看appcelerator 它看起来很不错 毫无疑问 appcelerator的优势之一就是它对多平台的支持 我有兴趣构建一个 Android 应用程序 也许稍后还会构建一个 iPhone 应用程序 所以目前支持多平台并不重要 如果
  • 如何解决Android中的NullPointerException错误?

    下面的代码在 Eclipse 的模拟器中运行顺利 但在 Android 手机和平板电脑上运行时出现问题 public class RingerActivity extends Activity Called when the activit
  • LibGDX 闪烁

    我已经使用 LibGDX UI 设置来启动一个项目 我在实现 ApplicationListener 中唯一拥有的是 public void create setScreen new LoadingScreen this 这应该会触发 Lo
  • 具有线程安全性的 eventbus 最佳实践

    我的应用程序具有用户交互活动和后台服务 这是修改数据模型的唯一地方 后台服务监听用户所做的操作以及来自网络的传入消息 因此 可能会出现并发问题 我尝试使用处理程序来防止这些问题 对于事件层 我使用 greenrobots Eventbus
  • AppWidget 中的进度条

    我在应用程序小部件中使用 ProgressBar 时遇到了一个有趣的情况 文档 http developer android com guide topics appwidgets index html http developer and
  • 如何将点击侦听器添加到 Android/Java Textview 中的字符串中?

    我想要完成的是大多数 Twitter 应用程序中的标准操作 在文本视图中 文本字符串中的单词前面可能有 提及或 主题标签 并且它们实际上能够添加点击侦听器这个词启动了另一项活动 有谁知道这是如何实现的 下面我附上了一张示例照片 显示了我想要
  • ConstraintLayout 源代码位于哪里?

    哪里可以找到android的源代码ConstraintLayout 我在支持框架存储库甚至谷歌搜索中都找不到它 它的源代码在这里 https android googlesource com platform frameworks opt
  • 使用 Espresso + MockK 进行 Android UI 测试时,在模拟器上使用 SIGSEGV 会崩溃,在物理设备上则正常

    我刚刚开始使用MockK模拟基于 MVP 的应用程序中的所有存储库 服务逻辑以进行 UI 测试 我有一些运行登录活动的 UI 测试 其中 Espresso 输入登录名和密码 并使用 MockK 我可以fake登录失败或无法登录的各种情况 所
  • 对特定路径使用 Intent.ACTION_PICK

    我正在尝试使用 Android 图库来选择图像 为此目的启动画廊很容易 Intent photoPickerIntent new Intent Intent ACTION PICK photoPickerIntent setType ima
  • 获取 Blob 图像并将该图像转换为 Bitmap 图像

    我正在从数据库中获取 blob 格式的图像 我想将其转换为位图图像 我用来将位图转换为 Blob 的代码放在下面 但是请告诉我如何反转它 ByteArrayOutputStream boas new ByteArrayOutputStrea
  • Firebase 附加权限。是否要求用户接受

    我目前正在致力于将 Firebase Analytics 集成到我的 Android 应用程序中 我遇到的问题是 Firebase 添加了一些新权限 这些权限是 permission WAKE LOCK com google android
  • Android ACTION_MOVE阈值

    我正在编写一个应用程序 需要使用手指或最终使用手写笔在屏幕上书写 我有那部分工作 在 ACTION DOWN 时 开始绘制 在 ACTION MOVE 上 添加线段 在 ACTION UP 上 完成该行 问题是 在 ACTION DOWN

随机推荐

  • Google App Engine 中的 Memcache 1 MB 限制

    如何在 memcache 中存储大小大于 1 MB 的对象 有没有办法将其拆分 但仍然可以使用相同的密钥访问数据 我使用以下模块 blobcache 在 GAE 的内存缓存中存储大小大于 1Mb 的值 import pickle impor
  • 格式化目录中的所有 XML 文件并将它们保存在子目录中

    我正在尝试编写一个脚本来查看目录 找到所有 XML 文件 然后运行它们xmllint 并将格式化结果保存到名为的子目录中的同名文件中formatted 这是我到目前为止的脚本 find maxdepth 1 type f iname xml
  • Python:-mno -cygwin

    我正在尝试在 Windows 上学习大量 Python 其中包括安装多个软件包 但是每次我调用 python setup py install 时 我都会遇到 gcc 的 mno cygwin 问题 我已经阅读了很多文章 似乎他们希望这些单
  • R:取消列出为两列数据框(名称,值)

    我想从命名列表创建两列data frame 列表名称出现在第一列中 列表元素出现在第二列中 我设法做到了这一点 这完成了工作 但远非优雅 my list lt list one digit 0 9 two digits 10 29 thre
  • Netbeans 7.0 中的 SVN 1.7+

    我有一个使用totoiseSVN 的项目 在升级到 1 7 版本之前 一切正常 但是当我将 tortoiseSVN 升级到 1 7 版本时 当我尝试提交或显示历史日志或更新时 它会给我一个错误 org tigris subversion j
  • 使用 CAEmitterLayer 围绕圆或 CGPath 绘制粒子

    我正在尝试使用 iOS 5 的粒子系统 CAEmitterLayer 和 CAEmitterCell 围绕圆 或者更好的是 CGPath 绘制粒子 但我不知道该怎么做 我能做的最好的事情就是制作一个圆弧 通过修改 CAEmitterCell
  • MySQL 错误 1205:超出锁定等待超时

    我正在使用 SQLyog 将生产数据库同步到开发数据库 在 4 张桌子上 我得到 Error No 1205 Lock wait timeout exceeded try restarting transaction 研究网络似乎表明事务已
  • 获取 IntentService 中的地理定位上下文

    我正在创建一个 Android 类库 它调用内部 REST API 并且还利用需要 Context 的 Android 地理编码器类 特别是 getFromLocation 我计划将库设为 IntentService 以允许其异步运行 但我
  • Android - 获取当前时间而不依赖于设备时钟

    我注意到 System currentTimeMillis 时间取决于设备 如果我更改设备时钟上的时间 此方法将返回不同的答案 例如 如果现在的实时时间是 10 00 并且我将设备上的时钟更改为 9 30 则 System currentT
  • 如何在 dart/flutter 中继承静态方法?

    Dart Flutter 是否可以继承静态方法或工厂 或者我是否需要通过创建一个实例来访问该静态方法来解决这个问题 我的情况是 我想序列化一个对象 但需要访问它们的通用解析函数 abstract class Foo static Foo p
  • Android:带有毫秒的计时器?

    我想要的是以毫秒为单位测量时间 但是使用Chronometer有一个问题 它没有精度 它的最高分辨率是秒 我见过这个 使用 Android Chronometer 显示毫秒 https stackoverflow com questions
  • 将 IList> 转换为 List> 形式

    在以下代码中 response Values 返回 IList gt IList
  • 无法列出 *v1alpha1.Order:orders.certmanager.k8s.io 被禁止

    几个月前 我配置了自动 SSL 证书管理 如下所述 http docs cert manager io en latest tutorials acme dns validation html http docs cert manager
  • Ansible 中基于路径的参数的流程替换

    许多 Ansible 模块被设计为接受文件路径作为参数 但无法直接提供文件内容 如果输入数据实际上来自文件以外的其他内容 这会强制人们在磁盘上的某个位置创建一个临时文件 将预期的参数值写入其中 然后将该临时文件的路径提供给 Ansible
  • Java 7 WatchService - 忽略同一事件的多次出现

    javadoc 为StandardWatchEventKinds ENTRY MODIFY says 目录条目已修改 当为此注册目录时 事件 然后当观察到其中的条目时 WatchKey 将排队 该目录已被修改 该事件的事件计数为 1 或更大
  • 如何使用usocket创建连接? (普通口齿不清)

    我正在尝试使用 lisp 中的套接字来创建连接 使用 sbcl 我发现 usocket 可用 但我无法在服务器和客户端之间发送字符串 这是代码 Server ql quickload usocket use package usocket
  • Jackson映射器写入id而不是整个对象

    我正在使用 jackson 2 4 2 来映射一些 hibernate 结果 因为 hibernate 对象可能非常复杂 我收到的问题是 我有一个 hibernate 对象列表 其中一些可能引用同一个对象 因此 jackson 仅映射对象一
  • 使用大型终端的 Vim 中选项卡切换缓慢

    我的 vim 切换标签非常慢 tabnext 当我全屏显示我的终端 1920x1200 时 有人能解决这个问题吗 是vim的问题还是我的设置问题 用一些文本重新绘制黑色终端 gnome terminal 应该不那么难 这可能是 gnome
  • 尽管调用了onSaveInstance,但OnCreate中的savedInstanceState始终为null

    好的 我已经重写了 OnSaveInstanceState 和 OnRestoreInstanceState 但在 OnCreate 中捆绑包为空 我已经解决了所有其他相关问题 但它们对我不起作用 这是我的主要活动 public class
  • 在 TableLayout 中以编程方式设置列数

    我有一个 XML 布局 其中包含一个具有未知数量的 TableRows 的 TableLayout 行数将在运行时建立 但我所知道的是我想要两列 所以我对此有几个问题 is there a way to set the whole Tabl