在 if 语句中使用数组值而不是 checkbox_id

Posted

技术标签:

【中文标题】在 if 语句中使用数组值而不是 checkbox_id【英文标题】:using Array value instead of checkbox_id in if statement 【发布时间】:2020-09-25 14:52:07 【问题描述】:

我有一个带有 id 的复选框:Pencilbox。现在我有一个数组,其中第一列包含对象的名称,名称等于它们的复选框 id,第二列是它们的价格。所以 数组:

  Pencil    5
  Pen       6
  Notebook  10

现在我想找到用户想要的对象的价格。所以通常我必须使用:

if (Pencilbix.ischecked) ...

但是现在,我想使用数组的第一列(因为字符串等于复选框 id)而不是复选框 id,或者:

if (Array[0][0].toString.ischecked) ...

但这是错误的。 任何想法?

【问题讨论】:

【参考方案1】:

使用findViewById()方法通过id获取视图并检查其状态:

val array = arrayOf(arrayOf(R.id.Pencilbox, 5), arrayOf(R.id.Penbox, 6), arrayOf(R.id.Notebookbox, 10))

// in Activity
if (findViewById<CheckBox>(array[0][0]).isChecked) ...

// in Fragment
if (view?.findViewById<CheckBox>(array[0][0])?.isChecked == true) ...

【讨论】:

如果我必须从 csv 文件中读取数组怎么办?实际上,我的数组是一个有 9 列的大数据集。 另外,当我使用你的方法时,我得到了错误:array[0][0] should be in Int 如果您使用 android,请在您的问题中添加适当的标签。 你得到错误 bcz findViewById() 方法只接受 Int 参数。 非常感谢。纠正我问题的人,删除了android对应的信息。我告诉过我正在使用 android、kotlin、

以上是关于在 if 语句中使用数组值而不是 checkbox_id的主要内容,如果未能解决你的问题,请参考以下文章

获取单个值而不是数组?

如何推送对象值而不是数组中对象的引用

PHP - IF 语句在 While 循环中始终为真

如何在javascript中执行if语句来检查JSON数组是不是为空?

如何按值而不是按引用将数组添加到列表中?

Vue 计算数组追加值而不是重写