Kotlin ListView 不显示任何文本
我目前正在尝试制作一个自定义待办事项列表应用程序。我设置了一个 ListView 元素和一个带有按钮的文本字段,用于从列表中添加/删除元素。但是,当我添加元素时,没有文本显示。我知道字段添加和删除正确,唯一的问题是没有文本。 (供参考)
这是我的 Activity_main.xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white"
android:visibility="visible"
tools:context=".MainActivity">
...
<ListView
android:id="@+id/listView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/textView1"
android:background="@color/white"
android:choiceMode="multipleChoice"
android:divider="@color/black"
android:textColor="@color/black" />
</RelativeLayout>
这是所有 Kotlin 代码:
package com.example.to_do
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.SparseBooleanArray
import android.widget.ArrayAdapter
import android.widget.Button
import android.widget.EditText
import android.widget.ListView
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val itemlist = arrayListOf<String>()
val adapter = ArrayAdapter(this, android.R.layout.simple_list_item_multiple_choice, itemlist)
val add = findViewById<Button>(R.id.add)
val editText = findViewById<EditText>(R.id.editText)
val listView = findViewById<ListView>(R.id.listView)
val delete = findViewById<Button>(R.id.delete)
listView.adapter = adapter
add.setOnClickListener {
val todoitem = editText.text.toString()
if (todoitem.isEmpty() == false) {
itemlist.add(editText.text.toString())
adapter.notifyDataSetChanged()
}
editText.text.clear()
}
delete.setOnClickListener {
val position: SparseBooleanArray = listView.checkedItemPositions
val count = listView.count
var item = count - 1
while (item >= 0) {
if (position.get(item)) {
adapter.remove(itemlist[item])
}
item--
}
position.clear()
adapter.notifyDataSetChanged()
}
}
}
有人可以帮忙吗?
I am currently trying to make a custom to-do list app. I have a ListView element set up and a text field with a buttons to add/remove elements from the list. However, when I add elements, no text shows up. I know that the fields add and remove correctly, the only problem is that there is no text. (image for reference)
Here is my activity_main.xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white"
android:visibility="visible"
tools:context=".MainActivity">
...
<ListView
android:id="@+id/listView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/textView1"
android:background="@color/white"
android:choiceMode="multipleChoice"
android:divider="@color/black"
android:textColor="@color/black" />
</RelativeLayout>
And here is all the Kotlin code:
package com.example.to_do
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.SparseBooleanArray
import android.widget.ArrayAdapter
import android.widget.Button
import android.widget.EditText
import android.widget.ListView
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val itemlist = arrayListOf<String>()
val adapter = ArrayAdapter(this, android.R.layout.simple_list_item_multiple_choice, itemlist)
val add = findViewById<Button>(R.id.add)
val editText = findViewById<EditText>(R.id.editText)
val listView = findViewById<ListView>(R.id.listView)
val delete = findViewById<Button>(R.id.delete)
listView.adapter = adapter
add.setOnClickListener {
val todoitem = editText.text.toString()
if (todoitem.isEmpty() == false) {
itemlist.add(editText.text.toString())
adapter.notifyDataSetChanged()
}
editText.text.clear()
}
delete.setOnClickListener {
val position: SparseBooleanArray = listView.checkedItemPositions
val count = listView.count
var item = count - 1
while (item >= 0) {
if (position.get(item)) {
adapter.remove(itemlist[item])
}
item--
}
position.clear()
adapter.notifyDataSetChanged()
}
}
}
Can anybody help?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论