Android权威编程指南学习笔记1

关于GeoQuiz编写的问题
1. 关于使用参数来获取问题数组索引的问题

private TextView mQuestionTextView;

private TrueFalse[] mQuestionBank = new TrueFalse[] {
        new TrueFalse(R.string.question_oceans, true),
        new TrueFalse(R.string.question_midest, false),
        new TrueFalse(R.string.question_africa, false),
        new TrueFalse(R.string.question_americas, true),
        new TrueFalse(R.string.question_asia, true),
};

private int mCurrentIndex = 0;

在上述代码中,创建了mQuestionBank类的数组,数组中保存了5个新的此类对象数组来保存问题与正确答案。
应用需要在点击下一个或上一个按钮来显示下一个或者上一个问题,mCurrentIndex用来保存当前问题的数组索引,当点击下一个或者上一个按钮时,需要改变mCurrentIndex的值来显示下一个或者上一个问题。
此时,点击下一个按钮时,可以使用取余的运算来获取下一个问题的数组索引:

  mCurrentIndex = (mCurrentIndex + 1) % mQuestionBank.length;

而点击上一个按钮时,因为要考虑到0-1是一个负数的情况,使用一个if语句来判断当前索引是否为零:

if(mCurrentIndex != 0) {
                    mCurrentIndex = (mCurrentIndex - 1) % mQuestionBank.length;
                } else {
                    mCurrentIndex = mQuestionBank.length - 1;
                }

注:上一个按钮在书上并没有代码答案,我考虑使用IF语句来实现此功能

2.关于ImageButton组件的相关属性
在一开始程序使用的是Button组件来实现对NEXT以及PREV功能的显示,而书本后要求直接使用一个ImageButton来显示上一个和下一个可以使整个layout显得更加简洁。

 <ImageButton
         android:id="@+id/next_button"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:src="@drawable/arrow_left"
         android:contentDescription="@string/next_button"/>

这是实现next功能的一个ImageView的相关属性设置,除了id、width和height外,android:src用来设置显示的图片。
而android:contentDescription属性用来设置其文字属性,用书上的话说,该属性为视力障碍用户提供方便,在其设置文字属性值后,如果用户设备的可访问性选项作了相应设置,那么用户点击图形按钮时,设备会读出属性值的内容。 我认为应该是Android设备上的辅助功能对其作出的要求,如果没有这个属性的话,程序也可以正常运行。(设备为SONY Z3+)。

总结:并不打算一直按这个格式来写,总之在学习和自己编写过程中遇到自己不懂的并解决的问题,和以前在编程过程中没有注意到的一些算法、设计模式都会写下来。一个用来巩固记忆,一个方便日后查阅。

最后放一张图吧,虽然程序很简单,但这样一步步来记录自己的学习过程也不错
这里写图片描述

//背景图是自己加上去的,最近死神玩的还不错~~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值