Android编程权威指南第三版挑战练习二


下载区


挑战练习二代码demo -> Link



挑战练习-题目1(2.7):为 TextView 添加监听器

NEXT按钮不错,但如果用户单击应用的 TextView 文字区域(地理知识问题),也可以跳转到下一道题,用户体验会更好。


参考解决方法:

只需要在mQuestionTextView对应绑定Id语句后面贴上这样一段代码

mQuestionTextView.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View v){
                mCurrentIndex = (mCurrentIndex + 1) % mQuestionBank.length;
                updateQuestion();
            }
        });
解释:照葫芦画瓢,监听器里面放的就是Next_Buton监听器里面的内容,此题不难。

挑战练习-题目2(2.8):添加后退按钮

为GeoQuiz应用新增后退按钮(PREV),用户单击时,可以显示上一道测试题目。完成后的用户界面应如图2-14所示

Android编程权威指南第三版挑战练习二_第1张图片

step 1:加入字符串

strings.xml里,next_button后面加上

Prev

解释:添加字符串资源


step 2:更改布局文件

layout.xml文件原本nextbutton处,前后增加ButtonLinearLayout

    
    

解释:在布局文件中增加一个button,由于题目是水平布局,所以要加上LinearLayout标签,设置orientation=“horizontal”


 
  
 
  
step 3:增加功能
QuizActivity.java中声明变量
 
  
private Button mPrevButton;
Oncreate方法内,mNextButton.setOnListener方法后面,插入mPrevButton的相关用法
        mPrevButton = (Button) findViewById(R.id.prev_button);
        mPrevButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                mCurrentIndex = mCurrentIndex-1 < 0? mQuestionBank.length - 1 : mCurrentIndex - 1;
                updateQuestion();
            }
        });
解释:除了下面这句话,其他与NextButton无异。表达的意思就是如果mCurrentIndex下表减一小于0的时候,我就将这个mCurrentIndex设为最后一条,这样可以防止出现异常。

mCurrentIndex= mCurrentIndex-1< 0?mQuestionBank.length- 1: mCurrentIndex- 1;


挑战练习-题目1(2.7):从按钮到图标按钮

题目和答案在书上写的很详细了,在这里就不再赘述,不懂可以自行下载demo。

解释:android:contentDescription这个属性的主要功能就是为视力有障碍的人增加对控件的解释。可以参考->Link


最终效果图:

Android编程权威指南第三版挑战练习二_第2张图片

 
  

你可能感兴趣的:(Android,Studio)