lmw
2024-09-25 92778728b83ce1a34ba21bcdb061afdeca16cce5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
package com.sinata.xqmuse.ui.guide
 
import android.util.Log
import android.widget.LinearLayout
import androidx.core.view.children
import cn.sinata.xldutils.gone
import cn.sinata.xldutils.utils.SPUtils
import com.google.gson.Gson
import com.sinata.xqmuse.MainActivity
import com.sinata.xqmuse.R
import com.sinata.xqmuse.network.HttpManager
import com.sinata.xqmuse.network.entity.TagBean
import com.sinata.xqmuse.network.entity.req.ReqAnswer
import com.sinata.xqmuse.network.request
import com.sinata.xqmuse.ui.TransparentStatusBarActivity
import com.sinata.xqmuse.utils.Const
import kotlinx.android.synthetic.main.activity_tag.*
import kotlinx.android.synthetic.main.layout_tag_item.view.*
import org.jetbrains.anko.startActivity
import org.jetbrains.anko.toast
 
class TagActivity:TransparentStatusBarActivity() {
    override fun setContentView() = R.layout.activity_tag
 
    private val answer by lazy { intent.getParcelableExtra<ReqAnswer>("answer") }
    private val tags by lazy { intent.getParcelableArrayListExtra<TagBean>("tags") }
 
    override fun initClick() {
        tv_skip.setOnClickListener { finish() }
        tv_last.setOnClickListener {
            startActivity<QAActivity>()
            finish()
        }
        tv_action.setOnClickListener {
            val flatMap = ll_tag.children.flatMap { (it as LinearLayout).children}
            answer!!.tagIds = flatMap.filter { it.tv_name.isChecked }.joinToString(",") { it.tv_name.tag as String }
            if (answer!!.tagIds.isNullOrEmpty()){
                toast("请选择标签")
            }else{
                if (SPUtils.instance().getString(Const.User.TOKEN).isNullOrEmpty()){
                    SPUtils.instance().put(Const.User.ANSWER,Gson().toJson(answer)).apply()
                    Log.e(Const.Tag,"当前未登录,保存到Sp中")
                    startActivity<MainActivity>()
                }else{
                    tv_action.isEnabled = false
                    HttpManager.saveUserAnswers(answer!!).request(this,success = {_,_->
                        toast("保存成功")
                        startActivity<MainActivity>()
                    }){_,_->
                        tv_action.isEnabled = true
                    }
                }
            }
        }
    }
 
    override fun initView() {
        titleBar.gone()
        var lines = 0 //行号
        while (!tags.isNullOrEmpty()){
            val maxRow = if(lines%2 == 0) 3 else 4 //最大列数
            val take = tags!!.take(maxRow)
            tags!!.removeAll(take)
            val inflate = layoutInflater.inflate(R.layout.layout_ll_tag, ll_tag, false) as LinearLayout
            take.forEach {
                val tag = layoutInflater.inflate(R.layout.layout_tag_item,inflate,false)
                tag.tv_name.text = it.tagName
                tag.tv_name.tag = it.id
                inflate.addView(tag)
            }
            ll_tag.addView(inflate)
            lines++
        }
    }
}