如何用Kotlin实现Android点击±按钮更新数量并对齐数值
注意:该功能必须使用Kotlin实现
第一步:调整布局实现数量居中显示
你当前的布局中数量TextView的对齐规则需要修改,才能实现「在加减按钮之间居中」的效果,修改后的完整布局代码如下:
<RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginStart="36dp" android:layout_marginTop="36dp" android:orientation="vertical" tools:ignore="HardcodedText"> <TextView android:id="@+id/Quantity" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="16dp" android:text="QUANTITY" android:textSize="23sp" /> <!-- 数量显示TextView 调整对齐规则 --> <TextView android:id="@+id/qtr" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/Quantity" android:layout_toRightOf="@+id/add" android:layout_toLeftOf="@+id/sub" android:layout_centerVertical="true" android:gravity="center" android:text="0" android:textSize="23sp" /> <Button android:id="@+id/orderbutton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/add" android:onClick="order" android:text="Order" /> <Button android:id="@+id/add" android:layout_width="45dp" android:layout_height="wrap_content" android:layout_below="@+id/Quantity" android:layout_marginRight="16dp" android:text="+" /> <Button android:id="@+id/sub" android:layout_width="45dp" android:layout_height="wrap_content" android:layout_below="@+id/Quantity" android:layout_marginLeft="16dp" android:layout_toRightOf="@+id/qtr" android:text="-" /> </RelativeLayout>
核心修改点:
- 给
qtr新增layout_toLeftOf="@+id/sub"属性,限定它的右边界在减按钮左侧 - 新增
layout_centerVertical="true"让它和加减按钮垂直对齐 - 新增
gravity="center"让文字自身居中显示,默认值设置为0
第二步:Kotlin代码实现点击加减更新数量
修改MainActivity.kt代码如下:
package com.example.demoapplicaltion import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.widget.Button import android.widget.TextView class MainActivity : AppCompatActivity() { // 存储当前数量 private var quantity = 0 // 控件声明 private lateinit var qtrText: TextView private lateinit var addBtn: Button private lateinit var subBtn: Button override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) // 绑定控件 qtrText = findViewById(R.id.qtr) addBtn = findViewById(R.id.add) subBtn = findViewById(R.id.sub) // 加按钮点击事件 addBtn.setOnClickListener { quantity++ updateQuantityText() } // 减按钮点击事件,避免数量为负 subBtn.setOnClickListener { if (quantity > 0) { quantity-- updateQuantityText() } } } // 更新数量显示 private fun updateQuantityText() { qtrText.text = quantity.toString() } }
以上代码实现了点击加减按钮实时更新数量的逻辑,同时限制了数量最小为0,避免出现负数的异常情况。
内容的提问来源于stack exchange,提问作者deepjyoti7147
相关产品推荐
相关产品推荐

