android - 如何在 GridView [Kotlin] [Android Studio] 中读取和更新 EditText
问题描述
我正在尝试创建一个显示 EditText 矩阵并允许用户输入文本的应用程序。这是我使用 GridView 实现的,其中项目是 EditText。
当我想读取或更新 EditText 数据时,我遇到了问题。
在这里,我展示了我拥有的一些代码。
类 MainActivity
class MainActivity : AppCompatActivity() {
var matrix1: Array<Array<Int>> = Array(3, {Array(3, {0})})
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
var adapter = GridViewAdapter(this, matrix1)
gvMatrix1.numColumns = 3
gvMatrix1.adapter = adapter
}
}
类适配器
class GridViewAdapter(val context: Context, var matrix: Array<Array<Int>>) : BaseAdapter() {
override fun getView(p0: Int, p1: View?, p2: ViewGroup?): View {
var inflator = context!!.getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater
var view = inflator.inflate(R.layout.grid_view_item, null)
return view
}
override fun getItem(p0: Int): Any = matrix[p0%matrix.size][p0-(p0-p0%matrix.size)]
override fun getItemId(p0: Int): Long = p0.toLong()
override fun getCount(): Int = matrix.size * matrix[0].size
}
activity_main.xml 中的 GridView XML
<GridView
android:id="@+id/gvMatrix1"
android:layout_width="100dip"
android:layout_height="200dip"
android:columnWidth="2dp"
android:numColumns="1"/>
GridView 项目 XML
<EditText xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/etItem"
android:layout_width="match_parent"
android:layout_height="match_parent">
我的意图是读取所有editText的内容以将它们保存在matrix1中,修改matrix1并显示它们的新内容。
GridView 是这个用途的好选择还是有一些布局或视图更好?
提前致谢。
解决方案
我在列表视图中使用了 EditText。但是遇到了 EditText 行为的问题。然后我使用循环切换到添加视图方法。
val results = List<String>
for(i in results.size downTo 0 ){
val inflatedView = LayoutInflater.from(this@MainActivity).inflate(R.layout.myView, card_container, false)
.......
.......
card_container.addView(inflatedView)
}
这card_container
是一个线性布局。我想 girdview 也有 listview 的问题。所以你可以试试这个解决方案,看看它是否有效。
推荐阅读
- react-native - 收到错误对象作为 React 子对象无效(找到:带有键 {_40、_65、_55、_72} 的对象)
- javascript - 如何在节点 Js 中获取呼叫者姓名
- python - 具有不同缩放参数的 Torch 优化器
- javascript - 如何从回调函数中捕获错误
- php - htmlentities
使用 PHPmailer 时忽略 - reactjs - 使用 useEffect 对状态变化做出反应
- json - 如何从 C3.ai COVID-19 数据湖中的 fetch API 将 fetch 返回对象转换为 csv?
- java - 仅通过父属性的 Java 子类等于父类
- haskell - Haskell 类型和值构造函数
- excel - 分配给形状的 Excel 宏可以格式化形状所在的单元格吗?