gpt4 book ai didi

android - 带有 EditText 的加号和减号按钮

转载 作者:行者123 更新时间:2023-11-29 15:33:57 25 4
gpt4 key购买 nike

我有一个功能正常的按钮,递增和递减功能正常。但我需要也可以使用 EdidText 手动输入值。

我的代码如下:

Activity .tk

import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.view.View
import android.widget.Button
import android.widget.TextView

class MainActivity : AppCompatActivity() {
internal var minteger = 0
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)


val plus = findViewById<Button>(R.id.increase)
val minus = findViewById<Button>(R.id.decrease)

plus.setOnClickListener {

increaseInteger(plus)
}



minus.setOnClickListener {

decreaseInteger(minus)
}
}

fun increaseInteger(view: View) {
minteger += 1
display(minteger)

}

fun decreaseInteger(view: View) {
minteger -= 1
display(minteger)
}

private fun display(number: Int) {
val displayInteger = findViewById<View>(
R.id.integer_number) as TextView
displayInteger.text = "" + number
}
}

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="16dp"
android:gravity="center_horizontal"
android:orientation="vertical"
tools:context=".MainActivity">



<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="56dp"
android:orientation="horizontal">

<Button
android:id="@+id/decrease"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="-" />

<TextView
android:id="@+id/integer_number"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="16dp"
android:layout_marginLeft="40dp"
android:layout_marginRight="40dp"
android:layout_marginTop="16dp"
android:text="0"
android:textStyle="bold"
android:textSize="70sp" />

<Button
android:id="@+id/increase"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="+" />
</LinearLayout>


</LinearLayout>

我已经用 EditText (@+id/integer_number) 更改了 TextView

但是当我输入一个没有保存的值时,我无法找到一种方法来保存在 EdidText 中输入的值,以便我可以增加或减少它。

对于能够操作我的按钮的任何建议,我将不胜感激。

buton

最佳答案

在您的 xml 中更改为 EditText:

<EditText
android:id="@+id/integer_number"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="16dp"
android:layout_marginLeft="40dp"
android:layout_marginRight="40dp"
android:layout_marginTop="16dp"
android:text="0"
android:inputType="number"
android:textStyle="bold"
android:textSize="70sp" />

我添加了属性:

android:inputType="number"

所以只允许使用数字。
在您的 MainActivity 类中添加此导入:

import kotlinx.android.synthetic.main.activity_main.*

因此您无需findViewById() 即可访问 xml 的所有项目。
现在您不需要在任何地方保存 EditText 的值,因为您可以随时通过以下方式获取它:

integer_number.text.toString().toInt()

因此不再需要变量 minteger
将 Activity 代码更改为:

import android.os.Bundle
import android.support.v7.app.AppCompatActivity
import kotlinx.android.synthetic.main.activity_main.*

class MainActivity : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)

increase.setOnClickListener { increaseInteger() }
decrease.setOnClickListener { decreaseInteger() }
}

fun increaseInteger() {
display(integer_number.text.toString().toInt() + 1)
}

fun decreaseInteger() {
display(integer_number.text.toString().toInt() - 1)
}

private fun display(number: Int) {
integer_number.setText("$number")
}
}

我也做了其他的简化。
您不需要函数 increaseInteger()decreaseInteger() 的任何参数。
最大和最小整数值有限制。
因此,如果您想安全起见,还必须在 increaseInteger()decreaseInteger() 中使用 try/catch block 以避免异常(exception)情况。

关于android - 带有 EditText 的加号和减号按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56716633/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com