android - 我如何在 android kotlin 中保存/使用用户输入
问题描述
我正在尝试编写我的第一个 android 应用程序。我过去唯一做过的编程是 4 年前的一些 html(在 cms 出现之前)
它本质上是一个检查列表,但我希望能够有多个列表,由用户提供的列表名称分隔。我有一个名为“岛屿名称”的输入文本框,但我不知道如何从用户那里捕获该文本并将其保存以备将来使用...
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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">
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="189dp"
android:text="temp call islander page"
android:textSize="30sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="125dp"
android:layout_marginBottom="271dp"
android:onClick="loadHome"
android:text="home"
android:textSize="30sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" />
<EditText
android:id="@+id/editText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="41dp"
android:ems="10"
android:hint="island name"
android:inputType="textPersonName"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/button" />
<CheckBox
android:id="@+id/checkBox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="7dp"
android:layout_marginBottom="8dp"
android:text="north"
app:layout_constraintBottom_toTopOf="@+id/checkBox2"
app:layout_constraintEnd_toEndOf="@+id/checkBox2" />
<CheckBox
android:id="@+id/checkBox2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="2dp"
android:layout_marginBottom="88dp"
android:text="south"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="@+id/editText" />
println("your island name is $name")
<TextView
android:id="@+id/textView4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="5dp"
android:layout_marginTop="19dp"
android:text="you entered $name"
app:layout_constraintStart_toEndOf="@+id/checkBox2"
app:layout_constraintTop_toBottomOf="@+id/checkBox2" />
</androidx.constraintlayout.widget.ConstraintLayout>
解决方案
简而言之,在 Android dev (Android Studio) 中,您有自己的视图,即您的 .xml 文件,您的程序逻辑写在您的 .kt 或 .java 文件中,然后您从 .kt oe 中引用您各自的视图, java 文件。
例如
activity_main.xml
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/textView"
android:layout_height="wrap_content"
android:layout_width="200dp"/>
<Button
android:id="@+id/saveBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Save" />
</LinearLayout>
MainActivity.kt:
import kotlinx.android.synthetic.main.activity_main.* //this will reference all views in activity_main -
//Android studio usually auto imports this when you simply type control name
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
saveBtn.setOnClickListener {
saveDetails()
}
}
fun saveDetails(){
var userText = textView.text.toString()
textView4.setText(userText)
//do something with text
}
}
推荐阅读
- python - 如何使用随机森林 ML 预测玩家
- python - Pandas 迭代两个数据帧
- android - 如何使用电容器运行 Ionic 项目?
- c++ - 声明中的 noexcept 不一致是否违反 ODR?
- angular - 角度扩展面板标题未与数据对齐
- r - tinytex 首次下载 PDF 时未找到 tabu.sty
- xml - 在两个命名空间中解组具有相同属性名称的 XML 属性
- c++ - 使用 raylib 静态库编译项目
- eclipse - XHTML 语法验证器在 Eclipse 中不可见(在 Window->Preferences 下的验证菜单选项中)
- javascript - Redux - 找不到目录来调用调度