玩kotlin,写个android里面的答题系统

常见的APP 应用 都能见到的功能模块 ,翻页答题 ,手指轻轻滑动,下一题。

这次用到的语言是kotlin 。讲道理 IOS-swift , Android-kotlin 夫妻配啊

滑动翻页效果  用到的控件是viewPager ,viewpager滑动翻页不要太容易 

简单来说 fragmentA中装入viewpager ,viewpager adapter设置继承FragmentPagerAdapter。 这样就可以在adpter 的getItem方法中将一个新的fragmentB 装进去

这样的层次结构感觉就有三层了 。

viewPager.addOnPageChangeListener(object : ViewPager.OnPageChangeListener {
    override fun onPageScrolled(position: Int, positionOffset: Float, positionOffsetPixels: Int) {

    }

    override fun onPageSelected(position: Int) {

        
    }

    override fun onPageScrollStateChanged(state: Int) {

    }
}
这个方法可以监听当前翻到第几页了根据position 设置当前页面显示第几题 。就像这样: 1/30
如果想在当前页面放一个按钮 点击按钮了就能自动翻页也是可以的 
 
   
 
   
btn.setOnClickListener {
    log("下一题")

    if (mCurrentViewId == 0) {
        mCurrentViewId = 1
    }
    if (mCurrentViewId != (list as ArrayList).size) {
        viewPager.setCurrentItem(mCurrentViewId, true)
    } else {
      
    }
}

viewPager 一设置当前item 它就翻页了 。
由于一来是在外层的fragmentA 请求网络获取题目信息列表什么的 。而题目显示答案啥的 都是在viewPager 对应adapter 装的fragmentB里面。
所以 一开始就要把list 传进去 。viewpagerAdapter 则要把position 传到里面的fragmentB,不然咋知道要显示哪道题呢。
 
   
最里面的fragmentB 要显示题目名。选项,解析啥的 textview  listview  imageview 什么的搞起listview 装题目选项 。又要用到adapter 
,在adapter 里面点击选择题目 。记录题目被选中,还要把答案层层回调出来。哎呀 妈个鸡 ,赶脚写复杂了 。
 
   
设置一个集合chooseItemSet,点击选项某一个,先在集合中找一波,没有 +进去,有了 -去了。简单的逻辑实现选题过程
在选项的adapter 里面 搞个interface。
 
   
listener.answer_result(chooseItemSet)
外层实现这个接口 回调出来速度不慢.层层回调出来 就到fragmentA 里面了 。这里面就知道咱选了哪道题对应选项chooseItemSet。
 
   
在fragmentA中判断当前如果是最后一页 mCurrentViewId == (list as ArrayList).size
说明这个时候下一题按钮功能就变成提交了。调用网络把答案传给服务端 
 
   
简单来说就是viewpager里面装一个fragment 。每翻一页fragment 里面的参数就根据position 从list(这个list 肯定是一个ArrayList(DataBean) 的格式呀呀呀呀啊呀)中取出来。然后把这些数据信息展示出来。
 
   
OVER!! 收工!!

 
   
 
   




你可能感兴趣的:(android,kotlin)