java - 如何为android数据网格设置id?

标签 java android android-tablelayout

伙计们,我正在尝试在我的 Android 项目中使用 EditText 和表格布局创建数据网格,我已经成功地使用 EditText 创建了 UI,但现在我需要帮助来设置每个字段的 ID。

enter image description here 我想将 id 设置为 r1c1、r1c2...等,或者有更好的方法来做到这一点。我想计算我的行总数和列总数。

编辑: 我还有一个生成新行的添加按钮。所以细胞是以编程方式生成的。

表格单元格 fragment :

    EditText cb= new EditText(this);
    cb.setLayoutParams(params);
    cb.setBackgroundColor(Color.parseColor("#ffffff"));

最佳答案

我认为没有什么好的方法可以处理像“r1c1”、“r1c2”等字符串,但有几个选择:

如果您只需要获得一个有效的 ID,您可以使用静态方法 View.generateViewId()。不过这是 API 级别 17,因此只能在最新版本的 Android 中使用。看这里:
http://developer.android.com/reference/android/view/View.html#generateViewId%28%29

另一种方法是将对 EditText 对象的引用存储在二维数组或列表中。当您需要对行或列求和时,您将遍历数组的适当部分并从那里开始。

第三种选择是从每个 EditText 而不是 EditText 本身保留一个二维值数组。您可以像这样使用 TextWatcher 执行此操作:

// Creating EditText for (row,col)
// Expand size of 2D array if necessary
EditText cb = new EditText(this);
cb.setLayoutParams(params);
cb.setBackgroundColor(Color.parseColor("#ffffff"));
cb.setInputType(InputType.TYPE_CLASS_NUMBER); // So the user can only enter numbers
cb.addTextChangedListener(new TextWatcher() {
  public void afterTextChanged(Editable s) {
    mValues[row][col] = Integer.valueOf(s.toString());
  }
});

有关详细信息,请参阅以下链接:
https://developer.android.com/reference/android/widget/TextView.html#addTextChangedListener%28android.text.TextWatcher%29
https://developer.android.com/reference/android/text/TextWatcher.html

关于java - 如何为android数据网格设置id?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16565951/

相关文章:

java - 似乎方法 .connect() 不起作用

android - 手动删除照片文件后删除图库中的照片缩略图

android - 在 DICTATION_MODE 中使用 android.speech.SpeechRecognizer 时出现延迟

android - 如何解决这个 Proguard 问题?

java - 如何在java中获取元素的标签类型

java - 部分解密废话

java - 如何创建可扩展列表?

java - 表格布局 : Text in the last column is not getting displayed completly

java - 如何在Scala中重写Java的ArrayList的addAll(Collection<? extends E> c)方法?天真的方法无法编译

android - Epg 的 2 维滚动图表或 android 中的某些时间表