Android编程权威指南(第4版)2.9 挑战练习:添加后退按钮

1. MainActivity.kt文件修改

①定义prevButton

    ······
    private lateinit var trueButton:Button
    private lateinit var falseButton: Button
    private lateinit var nextButton: Button
    private lateinit var prevButton: Button
    //在这里添加定义prevButton
    ······

②设置监听器

        ······
        nextButton.setOnClickListener {
            currentIndex = (currentIndex + 1) % questionBank.size
            updateQuestion()
        }


        prevButton.setOnClickListener {
            currentIndex = (currentIndex - 1) % questionBank.size
            updateQuestion()
        }
        //在nextButton后面增加prevButton

        ······

但是这样做会有一个bug,就是显示第0个问题时,按“PREV”会导致app闪退,所以可以升级一下,用下面的方法解决

        ······
        nextButton.setOnClickListener {
            currentIndex = (currentIndex + 1) % questionBank.size
            updateQuestion()
        }


        prevButton.setOnClickListener {
            if (currentIndex == 0) {
                currentIndex = questionBank.size
                currentIndex = (currentIndex - 1) % questionBank.size
            }
            else {
                currentIndex = (currentIndex - 1) % questionBank.size
            }
            updateQuestion()
        }
        //在nextButton后面增加prevButton
        
        ······

2. strings.xml文件修改

    ······
    <string name="next_button">Next</string>
    <string name="prev_button">Prev</string>
    //在此处增加string
    ······

3. activity_main.xml文件修改

①由于想让PREV和NEXT两个button处于水平并排排列的位置,所以此处需要增加LinearLayout将二者均包括在内,并设置自动宽度高度和水平排列。

②增加PREV的Button

    ······
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        //设置自动宽度高度和水平排列

        <Button
            android:id="@+id/prev_button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/prev_button"
            android:drawableStart="@drawable/arrow_left"
            android:drawablePadding="4dp" />

        <Button
            android:id="@+id/next_button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/next_button"
            android:drawableEnd="@drawable/arrow_right"
            android:drawablePadding="4dp"/>
            //增加PREV的Button

    </LinearLayout>
    ······

完成!

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值