正在显示
16 个修改的文件
包含
283 行增加
和
98 行删除
@@ -173,7 +173,8 @@ | @@ -173,7 +173,8 @@ | ||
173 | <activity android:name="com.br_technology.securitytrain_master.ui.view.mine.activity.LearningReportDetailActivity" /> | 173 | <activity android:name="com.br_technology.securitytrain_master.ui.view.mine.activity.LearningReportDetailActivity" /> |
174 | <activity android:name="com.br_technology.securitytrain_master.ui.view.mine.activity.MessageNoticeActivity" /> | 174 | <activity android:name="com.br_technology.securitytrain_master.ui.view.mine.activity.MessageNoticeActivity" /> |
175 | <activity android:name="com.br_technology.securitytrain_master.ui.view.mine.activity.MessageNoticeDetailActivity" /> | 175 | <activity android:name="com.br_technology.securitytrain_master.ui.view.mine.activity.MessageNoticeDetailActivity" /> |
176 | - <activity android:name="com.br_technology.securitytrain_master.ui.view.mine.activity.ComplaintsAndSuggestionsActivity" /> | 176 | + <activity android:name="com.br_technology.securitytrain_master.ui.view.mine.activity.ComplaintsAndSuggestionsActivity" |
177 | + android:theme="@style/AppBaseTheme"/> | ||
177 | <activity android:name="com.br_technology.securitytrain_master.ui.view.mine.activity.ComplaintsAndSuggestionsSuccessActivity" /> | 178 | <activity android:name="com.br_technology.securitytrain_master.ui.view.mine.activity.ComplaintsAndSuggestionsSuccessActivity" /> |
178 | <activity android:name="com.br_technology.securitytrain_master.ui.view.mine.activity.ClassDutyActivity" /> | 179 | <activity android:name="com.br_technology.securitytrain_master.ui.view.mine.activity.ClassDutyActivity" /> |
179 | <activity android:name="com.br_technology.securitytrain_master.ui.view.mine.activity.CollectActivity" /> | 180 | <activity android:name="com.br_technology.securitytrain_master.ui.view.mine.activity.CollectActivity" /> |
@@ -10,7 +10,8 @@ import java.io.File | @@ -10,7 +10,8 @@ import java.io.File | ||
10 | */ | 10 | */ |
11 | object Constant { | 11 | object Constant { |
12 | // const val BASE_URL = "https://admin.anqixing.com" | 12 | // const val BASE_URL = "https://admin.anqixing.com" |
13 | - const val BASE_URL = "https://test.admin.anqixing.com" | 13 | + const val BASE_URL = "https://security.brofirst.cn" |
14 | +// const val BASE_URL = "https://test.admin.anqixing.com" | ||
14 | const val USERNAME_KEY = "username" | 15 | const val USERNAME_KEY = "username" |
15 | const val USERID_KEY = "userid" | 16 | const val USERID_KEY = "userid" |
16 | const val LOGIN_KEY = "login" | 17 | const val LOGIN_KEY = "login" |
@@ -108,15 +108,11 @@ class DatabaseActivity : | @@ -108,15 +108,11 @@ class DatabaseActivity : | ||
108 | 108 | ||
109 | fun refresh() { | 109 | fun refresh() { |
110 | page = 1 | 110 | page = 1 |
111 | - binding.refresh.setEnableRefresh(false) | ||
112 | - binding.refresh.setEnableLoadMore(false) | ||
113 | mViewModel.getDataList(page) | 111 | mViewModel.getDataList(page) |
114 | } | 112 | } |
115 | 113 | ||
116 | private fun loadMore() { | 114 | private fun loadMore() { |
117 | page++ | 115 | page++ |
118 | - binding.refresh.setEnableRefresh(false) | ||
119 | - binding.refresh.setEnableLoadMore(false) | ||
120 | mViewModel.getDataList(page) | 116 | mViewModel.getDataList(page) |
121 | } | 117 | } |
122 | 118 |
@@ -10,6 +10,7 @@ import com.br_technology.securitytrain_master.ui.bean.TrainCourseDetailItemType. | @@ -10,6 +10,7 @@ import com.br_technology.securitytrain_master.ui.bean.TrainCourseDetailItemType. | ||
10 | import com.br_technology.securitytrain_master.ui.bean.TrainCourseDetailItemType.TYPE_COURSE_DETAIL_ITEM_NORMAL | 10 | import com.br_technology.securitytrain_master.ui.bean.TrainCourseDetailItemType.TYPE_COURSE_DETAIL_ITEM_NORMAL |
11 | import com.br_technology.securitytrain_master.ui.bean.TrainCourseDetailItemType.TYPE_COURSE_DETAIL_ITEM_OFF | 11 | import com.br_technology.securitytrain_master.ui.bean.TrainCourseDetailItemType.TYPE_COURSE_DETAIL_ITEM_OFF |
12 | import com.br_technology.securitytrain_master.ui.bean.TrainCourseDetailItemType.TYPE_COURSE_DETAIL_ITEM_VIDEO | 12 | import com.br_technology.securitytrain_master.ui.bean.TrainCourseDetailItemType.TYPE_COURSE_DETAIL_ITEM_VIDEO |
13 | +import com.br_technology.securitytrain_master.util.TimeFenMUtils | ||
13 | import com.chad.library.adapter.base.BaseMultiItemQuickAdapter | 14 | import com.chad.library.adapter.base.BaseMultiItemQuickAdapter |
14 | import com.chad.library.adapter.base.BaseQuickAdapter | 15 | import com.chad.library.adapter.base.BaseQuickAdapter |
15 | import com.chad.library.adapter.base.viewholder.BaseViewHolder | 16 | import com.chad.library.adapter.base.viewholder.BaseViewHolder |
@@ -164,7 +165,7 @@ class CourseDetailChildAdapter : | @@ -164,7 +165,7 @@ class CourseDetailChildAdapter : | ||
164 | } else { | 165 | } else { |
165 | "已完成" | 166 | "已完成" |
166 | } | 167 | } |
167 | - }${data.video_length}" | 168 | + }${formatLength(data.video_length)}" |
168 | ) | 169 | ) |
169 | holder.setText(R.id.tv_index, "${item.pos + 1}.${holder.layoutPosition + 1}") | 170 | holder.setText(R.id.tv_index, "${item.pos + 1}.${holder.layoutPosition + 1}") |
170 | } | 171 | } |
@@ -173,13 +174,9 @@ class CourseDetailChildAdapter : | @@ -173,13 +174,9 @@ class CourseDetailChildAdapter : | ||
173 | val data = item.lessonVideoNormalChild | 174 | val data = item.lessonVideoNormalChild |
174 | data?.apply { | 175 | data?.apply { |
175 | holder.setText(R.id.tv_name, data.name) | 176 | holder.setText(R.id.tv_name, data.name) |
176 | - holder.setText(R.id.tv_time, "${ | ||
177 | - if (data.is_complete == 0) { | ||
178 | - "未完成" | ||
179 | - } else { | ||
180 | - "已完成" | ||
181 | - } | ||
182 | - }${data.video_length}") | 177 | + holder.setText( |
178 | + R.id.tv_time, formatLength(data.video_length) | ||
179 | + ) | ||
183 | holder.setText(R.id.tv_index, "${item.pos + 1}.${holder.layoutPosition + 1}") | 180 | holder.setText(R.id.tv_index, "${item.pos + 1}.${holder.layoutPosition + 1}") |
184 | } | 181 | } |
185 | } | 182 | } |
@@ -208,4 +205,13 @@ class CourseDetailChildAdapter : | @@ -208,4 +205,13 @@ class CourseDetailChildAdapter : | ||
208 | } | 205 | } |
209 | } | 206 | } |
210 | } | 207 | } |
208 | + | ||
209 | + private fun formatLength(str: String): String { | ||
210 | + val temp = if (str.contains(".")) { | ||
211 | + str.subSequence(0, str.lastIndexOf(".")) | ||
212 | + } else { | ||
213 | + str | ||
214 | + } | ||
215 | + return TimeFenMUtils.formatHour(temp.toString()) | ||
216 | + } | ||
211 | } | 217 | } |
@@ -19,7 +19,7 @@ class TextLessonsAdapter(layoutResId: Int, data: MutableList<TextLessonBean.List | @@ -19,7 +19,7 @@ class TextLessonsAdapter(layoutResId: Int, data: MutableList<TextLessonBean.List | ||
19 | LoadMoreModule { | 19 | LoadMoreModule { |
20 | override fun convert(holder: BaseViewHolder, item: TextLessonBean.ListBean.DataBean) { | 20 | override fun convert(holder: BaseViewHolder, item: TextLessonBean.ListBean.DataBean) { |
21 | holder.setText(R.id.name, item.name) | 21 | holder.setText(R.id.name, item.name) |
22 | - holder.setText(R.id.info, item.des) | 22 | + holder.setText(R.id.info, item.intro) |
23 | Glide.with(context).load(item.image) | 23 | Glide.with(context).load(item.image) |
24 | .apply(RequestOptions.bitmapTransform(RoundedCorners(16))) | 24 | .apply(RequestOptions.bitmapTransform(RoundedCorners(16))) |
25 | .into(holder.getView(R.id.pic)) | 25 | .into(holder.getView(R.id.pic)) |
1 | package com.br_technology.securitytrain_master.ui.view.mine.activity | 1 | package com.br_technology.securitytrain_master.ui.view.mine.activity |
2 | 2 | ||
3 | -import android.view.View | ||
4 | -import android.widget.TextView | ||
5 | -import com.bigkoo.pickerview.builder.OptionsPickerBuilder | ||
6 | import com.bigkoo.pickerview.view.OptionsPickerView | 3 | import com.bigkoo.pickerview.view.OptionsPickerView |
7 | import com.br_technology.securitytrain_master.R | 4 | import com.br_technology.securitytrain_master.R |
8 | import com.br_technology.securitytrain_master.databinding.ActivityComplaintsAndSuggestionsBinding | 5 | import com.br_technology.securitytrain_master.databinding.ActivityComplaintsAndSuggestionsBinding |
9 | import com.br_technology.securitytrain_master.ui.view.mine.bean.FeedBackTypeBean | 6 | import com.br_technology.securitytrain_master.ui.view.mine.bean.FeedBackTypeBean |
10 | import com.br_technology.securitytrain_master.ui.view.mine.viewmodel.ComplaintsAndSuggestionsViewModel | 7 | import com.br_technology.securitytrain_master.ui.view.mine.viewmodel.ComplaintsAndSuggestionsViewModel |
8 | +import com.br_technology.securitytrain_master.view.DialogFeedType | ||
11 | import com.wjx.android.wanandroidmvvm.base.view.BaseLifeCycleActivity | 9 | import com.wjx.android.wanandroidmvvm.base.view.BaseLifeCycleActivity |
12 | 10 | ||
13 | 11 | ||
@@ -30,7 +28,7 @@ class ComplaintsAndSuggestionsActivity : | @@ -30,7 +28,7 @@ class ComplaintsAndSuggestionsActivity : | ||
30 | private var is_hide: String = "0" | 28 | private var is_hide: String = "0" |
31 | 29 | ||
32 | override fun initDataObserver() { | 30 | override fun initDataObserver() { |
33 | - mViewModel.mCommonBean.observe(this,{ | 31 | + mViewModel.mCommonBean.observe(this, { |
34 | startActivity(ComplaintsAndSuggestionsSuccessActivity::class.java) | 32 | startActivity(ComplaintsAndSuggestionsSuccessActivity::class.java) |
35 | finish() | 33 | finish() |
36 | }) | 34 | }) |
@@ -114,47 +112,25 @@ class ComplaintsAndSuggestionsActivity : | @@ -114,47 +112,25 @@ class ComplaintsAndSuggestionsActivity : | ||
114 | } | 112 | } |
115 | //投诉类型 | 113 | //投诉类型 |
116 | llType.setOnClickListener { | 114 | llType.setOnClickListener { |
117 | - initCustomOptionPicker() | 115 | +// initCustomOptionPicker() |
116 | + dialogShow() | ||
118 | } | 117 | } |
119 | } | 118 | } |
120 | } | 119 | } |
121 | 120 | ||
122 | - private fun initCustomOptionPicker() { //条件选择器初始化,自定义布局 | ||
123 | - /** | ||
124 | - * @description | ||
125 | - * | ||
126 | - * 注意事项: | ||
127 | - * 自定义布局中,id为 optionspicker 或者 timepicker 的布局以及其子控件必须要有,否则会报空指针。 | ||
128 | - * 具体可参考demo 里面的两个自定义layout布局。 | ||
129 | - */ | ||
130 | - cardItem = mutableListOf() | ||
131 | - cardItem?.add(FeedBackTypeBean("功能异常")) | ||
132 | - cardItem?.add(FeedBackTypeBean("体验问题")) | ||
133 | - cardItem?.add(FeedBackTypeBean("功能建议")) | ||
134 | - cardItem?.add(FeedBackTypeBean("服务投诉")) | ||
135 | - cardItem?.add(FeedBackTypeBean("其他问题")) | 121 | + private var dialogFeedType: DialogFeedType? = null |
136 | 122 | ||
137 | - pvCustomOptions = OptionsPickerBuilder( | ||
138 | - this | ||
139 | - ) { options1, _, _, _ -> //返回的分别是三个级别的选中位置 | ||
140 | - val tx: String = cardItem!![options1].pickerViewText | ||
141 | - binding.tvType.text = tx | 123 | + private fun dialogShow() { |
124 | + if (dialogFeedType == null) { | ||
125 | + dialogFeedType = | ||
126 | + DialogFeedType(this).setListener(object : DialogFeedType.ISelectFeedType { | ||
127 | + override fun select(content: String, index: Int) { | ||
128 | + binding.tvType.text = content | ||
129 | + type = "${index + 1}" | ||
130 | + } | ||
131 | + }) | ||
142 | } | 132 | } |
143 | - .setLayoutRes( | ||
144 | - R.layout.layout_tousu_type | ||
145 | - ) { v -> | ||
146 | - val tvSubmit = v.findViewById<View>(R.id.tv_finish) as TextView | ||
147 | - val ivCancel: TextView = v.findViewById<View>(R.id.iv_cancel) as TextView | ||
148 | - tvSubmit.setOnClickListener { | ||
149 | - pvCustomOptions?.returnData() | ||
150 | - pvCustomOptions?.dismiss() | ||
151 | - } | ||
152 | - ivCancel.setOnClickListener { pvCustomOptions?.dismiss() } | ||
153 | - } | ||
154 | - .setSelectOptions(0) | ||
155 | - .setOutSideCancelable(false) | ||
156 | - .build() | ||
157 | - pvCustomOptions?.setPicker(cardItem) //添加数据 | ||
158 | - pvCustomOptions?.show() | 133 | + dialogFeedType?.show() |
159 | } | 134 | } |
135 | + | ||
160 | } | 136 | } |
@@ -37,8 +37,8 @@ class MyErrorQuestionActivity : | @@ -37,8 +37,8 @@ class MyErrorQuestionActivity : | ||
37 | val list = | 37 | val list = |
38 | mutableListOf( | 38 | mutableListOf( |
39 | MyErrorQuestionFragment.newInstance(1), | 39 | MyErrorQuestionFragment.newInstance(1), |
40 | - MyErrorQuestionFragment.newInstance(2), | ||
41 | - MyErrorQuestionFragment.newInstance(3) | 40 | + MyErrorQuestionFragment.newInstance(3), |
41 | + MyErrorQuestionFragment.newInstance(2) | ||
42 | ) | 42 | ) |
43 | val titles = listOf("单选题", "判断题", "多选题") | 43 | val titles = listOf("单选题", "判断题", "多选题") |
44 | searchResultAdapter.addData(list.toMutableList()) | 44 | searchResultAdapter.addData(list.toMutableList()) |
1 | package com.br_technology.securitytrain_master.ui.view.mine.adapter | 1 | package com.br_technology.securitytrain_master.ui.view.mine.adapter |
2 | 2 | ||
3 | -import android.content.Context | ||
4 | -import android.view.LayoutInflater | ||
5 | -import android.view.ViewGroup | ||
6 | import com.br_technology.securitytrain_master.R | 3 | import com.br_technology.securitytrain_master.R |
7 | -import com.br_technology.securitytrain_master.base.view.BaseAdapter | ||
8 | -import com.br_technology.securitytrain_master.databinding.ItemSpecialExercisesBinding | ||
9 | import com.br_technology.securitytrain_master.ui.bean.AnswerRecord | 4 | import com.br_technology.securitytrain_master.ui.bean.AnswerRecord |
10 | -import com.br_technology.securitytrain_master.ui.view.home.pojo.VideoCourse | ||
11 | import com.chad.library.adapter.base.BaseQuickAdapter | 5 | import com.chad.library.adapter.base.BaseQuickAdapter |
12 | import com.chad.library.adapter.base.viewholder.BaseViewHolder | 6 | import com.chad.library.adapter.base.viewholder.BaseViewHolder |
13 | 7 | ||
@@ -16,23 +10,11 @@ import com.chad.library.adapter.base.viewholder.BaseViewHolder | @@ -16,23 +10,11 @@ import com.chad.library.adapter.base.viewholder.BaseViewHolder | ||
16 | * Author: Captain | 10 | * Author: Captain |
17 | * Description: 初见时你很迷人 | 11 | * Description: 初见时你很迷人 |
18 | */ | 12 | */ |
19 | -class SpecialExercisesAdapter : BaseQuickAdapter<AnswerRecord,BaseViewHolder>(R.layout.item_special_exercises) { | 13 | +class SpecialExercisesAdapter : |
14 | + BaseQuickAdapter<AnswerRecord, BaseViewHolder>(R.layout.item_special_exercises) { | ||
20 | override fun convert(holder: BaseViewHolder, item: AnswerRecord) { | 15 | override fun convert(holder: BaseViewHolder, item: AnswerRecord) { |
21 | - holder.setText(R.id.tv_question_title,item.title) | ||
22 | - .setText(R.id.tv_timer,item.create_time_text) | ||
23 | - .setText(R.id.tv_answer,"答对:${item.correct}/${item.count}") | 16 | + holder.setText(R.id.tv_question_title, "${item.title}(${item.pos.name ?: ""})") |
17 | + .setText(R.id.tv_timer, item.create_time_text) | ||
18 | + .setText(R.id.tv_answer, "答对:${item.correct}/${item.count}") | ||
24 | } | 19 | } |
25 | -// override fun getViewBinding( | ||
26 | -// context: Context, | ||
27 | -// parent: ViewGroup, | ||
28 | -// viewType: Int, | ||
29 | -// from: LayoutInflater | ||
30 | -// ): ItemSpecialExercisesBinding { | ||
31 | -// return ItemSpecialExercisesBinding.inflate(from, parent, false) | ||
32 | -// } | ||
33 | -// | ||
34 | -// override fun onBind(holder: ItemSpecialExercisesBinding, position: Int, data: VideoCourse) { | ||
35 | -// // 题名称 | ||
36 | -// holder.tvQuestionTitle.text = data.courseName | ||
37 | -// } | ||
38 | } | 20 | } |
@@ -52,6 +52,11 @@ class ClassDutyCourseFragment(val type: Int) : | @@ -52,6 +52,11 @@ class ClassDutyCourseFragment(val type: Int) : | ||
52 | super.onDestroyView() | 52 | super.onDestroyView() |
53 | } | 53 | } |
54 | 54 | ||
55 | + override fun onResume() { | ||
56 | + super.onResume() | ||
57 | + refreshData() | ||
58 | + } | ||
59 | + | ||
55 | @Subscribe | 60 | @Subscribe |
56 | fun statusChange(status: StatusTypeEvent) { | 61 | fun statusChange(status: StatusTypeEvent) { |
57 | this.status = status.id | 62 | this.status = status.id |
@@ -227,11 +232,6 @@ class ClassDutyCourseFragment(val type: Int) : | @@ -227,11 +232,6 @@ class ClassDutyCourseFragment(val type: Int) : | ||
227 | return response | 232 | return response |
228 | } | 233 | } |
229 | 234 | ||
230 | - override fun initData() { | ||
231 | - super.initData() | ||
232 | - getData() | ||
233 | - } | ||
234 | - | ||
235 | val dialogMention: DialogMention by lazy { | 235 | val dialogMention: DialogMention by lazy { |
236 | DialogMention(requireContext()).apply { | 236 | DialogMention(requireContext()).apply { |
237 | setTitle("温馨提示") | 237 | setTitle("温馨提示") |
@@ -241,8 +241,6 @@ class ClassDutyCourseFragment(val type: Int) : | @@ -241,8 +241,6 @@ class ClassDutyCourseFragment(val type: Int) : | ||
241 | 241 | ||
242 | //todo 时间校验限制等 | 242 | //todo 时间校验限制等 |
243 | fun checkTime(exam: ExamBean) { | 243 | fun checkTime(exam: ExamBean) { |
244 | - | ||
245 | - | ||
246 | } | 244 | } |
247 | 245 | ||
248 | override fun itemClick(item: TrainTestData) { | 246 | override fun itemClick(item: TrainTestData) { |
1 | package com.br_technology.securitytrain_master.util; | 1 | package com.br_technology.securitytrain_master.util; |
2 | 2 | ||
3 | -import android.content.Intent; | ||
4 | -import android.util.Log; | ||
5 | - | ||
6 | -import com.luck.picture.lib.tools.StringUtils; | ||
7 | - | ||
8 | import java.math.BigDecimal; | 3 | import java.math.BigDecimal; |
9 | 4 | ||
10 | public class TimeFenMUtils { | 5 | public class TimeFenMUtils { |
@@ -27,12 +22,16 @@ public class TimeFenMUtils { | @@ -27,12 +22,16 @@ public class TimeFenMUtils { | ||
27 | } else { | 22 | } else { |
28 | DateTimes = seconds + ""; | 23 | DateTimes = seconds + ""; |
29 | } | 24 | } |
30 | - | ||
31 | return DateTimes; | 25 | return DateTimes; |
32 | } | 26 | } |
33 | 27 | ||
34 | - | ||
35 | - | 28 | + public static String formatHour(String seconds) { |
29 | + long mss = BigDecimal.valueOf(Double.parseDouble(seconds)).longValue(); | ||
30 | + long hours = mss / (60 * 60); | ||
31 | + long minutes = (mss % (60 * 60)) / 60; | ||
32 | + long second = mss % 60; | ||
33 | + return (hours > 9 ? hours + "" : "0" + hours) + ":" + (minutes > 9 ? minutes : "0" + minutes) + ":" + (second > 9 ? second : "0" + second); | ||
34 | + } | ||
36 | 35 | ||
37 | } | 36 | } |
38 | 37 |
1 | +package com.br_technology.securitytrain_master.view | ||
2 | + | ||
3 | +import android.app.Dialog | ||
4 | +import android.content.Context | ||
5 | +import android.os.Bundle | ||
6 | +import android.view.LayoutInflater | ||
7 | +import com.br_technology.securitytrain_master.R | ||
8 | +import com.br_technology.securitytrain_master.databinding.DialogFeedTypeBinding | ||
9 | +import com.br_technology.securitytrain_master.expand.dp2px | ||
10 | +import com.br_technology.securitytrain_master.expand.screenWidth | ||
11 | + | ||
12 | +/** | ||
13 | + * Author by YSir | ||
14 | + * Date on 2022/3/15. | ||
15 | + * description 反馈类型单选弹框 | ||
16 | + * PS: Not easy to write code, please indicate. | ||
17 | + */ | ||
18 | +class DialogFeedType(context: Context) : Dialog(context, R.style.UserDefaultDialog) { | ||
19 | + private val binding by lazy { | ||
20 | + DialogFeedTypeBinding.inflate(LayoutInflater.from(context)) | ||
21 | + } | ||
22 | + | ||
23 | + interface ISelectFeedType { | ||
24 | + fun select(content: String, index: Int) | ||
25 | + } | ||
26 | + | ||
27 | + private var mSelectListener: ISelectFeedType? = null | ||
28 | + | ||
29 | + fun setListener(select: ISelectFeedType): DialogFeedType { | ||
30 | + this.mSelectListener = select | ||
31 | + return this | ||
32 | + } | ||
33 | + | ||
34 | + override fun onCreate(savedInstanceState: Bundle?) { | ||
35 | + super.onCreate(savedInstanceState) | ||
36 | + setContentView(binding.root) | ||
37 | + val attributes = window?.attributes | ||
38 | + attributes?.width = binding.root.screenWidth() - 32.dp2px() | ||
39 | + // 点击区域外取消 | ||
40 | + setCanceledOnTouchOutside(true) | ||
41 | + setCancelable(true) | ||
42 | + binding.apply { | ||
43 | + val listRadiusView = | ||
44 | + listOf(feedRadius1, feedRadius2, feedRadius3, feedRadius4, feedRadius5) | ||
45 | + val listTextView = | ||
46 | + listOf(feedText1, feedText2, feedText3, feedText4, feedText5) | ||
47 | + | ||
48 | + val listTouchView = listOf(feedType1, feedType2, feedType3, feedType4, feedType5) | ||
49 | + for ((position, radius) in listRadiusView.withIndex()) { | ||
50 | + radius.setOnCheckedChangeListener { _, isChecked -> | ||
51 | + if (isChecked) { | ||
52 | + mSelectListener?.select( | ||
53 | + listTextView[position].text.toString(), | ||
54 | + position | ||
55 | + ) | ||
56 | + for ((index, radiusChild) in listRadiusView.withIndex()) { | ||
57 | + if (index != position) { | ||
58 | + radiusChild.isChecked = false | ||
59 | + } | ||
60 | + } | ||
61 | + dismiss() | ||
62 | + } | ||
63 | + } | ||
64 | + } | ||
65 | + for ((index, touch) in listTouchView.withIndex()) { | ||
66 | + touch.setOnClickListener { | ||
67 | + if (it.isPressed) { | ||
68 | + for ((position, radius) in listRadiusView.withIndex()) { | ||
69 | + radius.isChecked = position == index | ||
70 | + } | ||
71 | + } | ||
72 | + } | ||
73 | + } | ||
74 | + } | ||
75 | + } | ||
76 | +} |
app/src/main/res/layout/dialog_feed_type.xml
0 → 100644
1 | +<?xml version="1.0" encoding="utf-8"?> | ||
2 | +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" | ||
3 | + android:layout_width="match_parent" | ||
4 | + android:layout_height="wrap_content" | ||
5 | + android:background="@color/white" | ||
6 | + android:orientation="vertical"> | ||
7 | + | ||
8 | + <TextView | ||
9 | + style="@style/TextSingle" | ||
10 | + android:text="选择投诉类型" /> | ||
11 | + | ||
12 | + <View style="@style/Space" /> | ||
13 | + | ||
14 | + <LinearLayout | ||
15 | + android:id="@+id/feed_type_1" | ||
16 | + style="@style/LinearText"> | ||
17 | + | ||
18 | + <TextView | ||
19 | + android:id="@+id/feed_text_1" | ||
20 | + style="@style/TextLeft" | ||
21 | + android:text="功能异常" /> | ||
22 | + | ||
23 | + <RadioButton | ||
24 | + android:id="@+id/feed_radius_1" | ||
25 | + style="@style/RadiusRight" /> | ||
26 | + </LinearLayout> | ||
27 | + | ||
28 | + <View style="@style/Space" /> | ||
29 | + | ||
30 | + <LinearLayout | ||
31 | + android:id="@+id/feed_type_2" | ||
32 | + style="@style/LinearText"> | ||
33 | + | ||
34 | + <TextView | ||
35 | + android:id="@+id/feed_text_2" | ||
36 | + style="@style/TextLeft" | ||
37 | + android:text="体验问题" /> | ||
38 | + | ||
39 | + <RadioButton | ||
40 | + android:id="@+id/feed_radius_2" | ||
41 | + style="@style/RadiusRight" /> | ||
42 | + </LinearLayout> | ||
43 | + | ||
44 | + <View style="@style/Space" /> | ||
45 | + | ||
46 | + <LinearLayout | ||
47 | + android:id="@+id/feed_type_3" | ||
48 | + style="@style/LinearText"> | ||
49 | + | ||
50 | + <TextView | ||
51 | + android:id="@+id/feed_text_3" | ||
52 | + style="@style/TextLeft" | ||
53 | + android:text="功能建议" /> | ||
54 | + | ||
55 | + <RadioButton | ||
56 | + android:id="@+id/feed_radius_3" | ||
57 | + style="@style/RadiusRight" /> | ||
58 | + </LinearLayout> | ||
59 | + | ||
60 | + <View style="@style/Space" /> | ||
61 | + | ||
62 | + <LinearLayout | ||
63 | + android:id="@+id/feed_type_4" | ||
64 | + style="@style/LinearText"> | ||
65 | + | ||
66 | + <TextView | ||
67 | + android:id="@+id/feed_text_4" | ||
68 | + style="@style/TextLeft" | ||
69 | + android:text="服务投诉" /> | ||
70 | + | ||
71 | + <RadioButton | ||
72 | + android:id="@+id/feed_radius_4" | ||
73 | + style="@style/RadiusRight" /> | ||
74 | + </LinearLayout> | ||
75 | + | ||
76 | + <View style="@style/Space" /> | ||
77 | + | ||
78 | + <LinearLayout | ||
79 | + android:id="@+id/feed_type_5" | ||
80 | + style="@style/LinearText"> | ||
81 | + | ||
82 | + <TextView | ||
83 | + android:id="@+id/feed_text_5" | ||
84 | + style="@style/TextLeft" | ||
85 | + android:text="其他问题" /> | ||
86 | + | ||
87 | + <RadioButton | ||
88 | + android:id="@+id/feed_radius_5" | ||
89 | + style="@style/RadiusRight" /> | ||
90 | + </LinearLayout> | ||
91 | +</LinearLayout> |
@@ -28,8 +28,6 @@ | @@ -28,8 +28,6 @@ | ||
28 | android:id="@+id/recyclerview" | 28 | android:id="@+id/recyclerview" |
29 | android:layout_width="match_parent" | 29 | android:layout_width="match_parent" |
30 | android:layout_height="match_parent" | 30 | android:layout_height="match_parent" |
31 | - android:layout_marginStart="16dp" | ||
32 | - android:layout_marginEnd="16dp" | ||
33 | android:layout_marginTop="16dp" | 31 | android:layout_marginTop="16dp" |
34 | android:overScrollMode="never" | 32 | android:overScrollMode="never" |
35 | android:scrollbars="none" | 33 | android:scrollbars="none" |
@@ -18,5 +18,6 @@ | @@ -18,5 +18,6 @@ | ||
18 | android:layout_height="wrap_content" | 18 | android:layout_height="wrap_content" |
19 | android:layout_gravity="center" | 19 | android:layout_gravity="center" |
20 | android:textColor="@color/black" | 20 | android:textColor="@color/black" |
21 | + android:layout_marginBottom="32dp" | ||
21 | android:text="上传证件"/> | 22 | android:text="上传证件"/> |
22 | </LinearLayout> | 23 | </LinearLayout> |
@@ -22,7 +22,7 @@ | @@ -22,7 +22,7 @@ | ||
22 | 22 | ||
23 | <TextView | 23 | <TextView |
24 | android:id="@+id/tv_question_title" | 24 | android:id="@+id/tv_question_title" |
25 | - android:layout_width="wrap_content" | 25 | + android:layout_width="0dp" |
26 | android:layout_height="wrap_content" | 26 | android:layout_height="wrap_content" |
27 | android:layout_marginStart="12dp" | 27 | android:layout_marginStart="12dp" |
28 | android:layout_marginTop="16dp" | 28 | android:layout_marginTop="16dp" |
1 | <?xml version="1.0" encoding="utf-8"?> | 1 | <?xml version="1.0" encoding="utf-8"?> |
2 | <resources> | 2 | <resources> |
3 | + <style name="AppBaseTheme" parent="Theme.AppCompat.Light.NoActionBar"> | ||
4 | + | ||
5 | + <item name="colorPrimary">@color/text_light_gray</item> | ||
6 | + <!-- 状态栏颜色 --> | ||
7 | + <item name="colorPrimaryDark">@color/text_light_gray</item> | ||
8 | + | ||
9 | + <!--按钮选中或者点击获得焦点后的颜色--> | ||
10 | + <item name="colorAccent">@color/color_25</item> | ||
11 | + | ||
12 | + <!--控制searchView的icon颜色的设置--> | ||
13 | + <item name="colorControlNormal">@color/text_light_gray</item> | ||
14 | + <!--Button按钮正常状态颜色--> | ||
15 | + <item name="colorButtonNormal">@color/text_light_gray</item> | ||
16 | + <!--EditText 输入框中字体的颜色--> | ||
17 | + <item name="editTextColor">@android:color/white</item> | ||
18 | + <!-- 窗口的背景颜色 --> | ||
19 | + <item name="android:windowBackground">@android:color/white</item> | ||
20 | + <!--导航栏上的标题颜色--> | ||
21 | + <item name="android:textColorPrimary">@color/black</item> | ||
22 | + <item name="android:listDivider">@color/text_light_gray</item> | ||
23 | + | ||
24 | + </style> | ||
3 | 25 | ||
4 | <style name="dialog_progress" parent="@android:style/Theme.Dialog"> | 26 | <style name="dialog_progress" parent="@android:style/Theme.Dialog"> |
5 | <item name="android:windowBackground">@color/transparent</item><!--背景透明--> | 27 | <item name="android:windowBackground">@color/transparent</item><!--背景透明--> |
@@ -17,6 +39,7 @@ | @@ -17,6 +39,7 @@ | ||
17 | <attr name="bord_width" format="dimension" /> | 39 | <attr name="bord_width" format="dimension" /> |
18 | <attr name="bord_color" format="color" /> | 40 | <attr name="bord_color" format="color" /> |
19 | </declare-styleable> | 41 | </declare-styleable> |
42 | + | ||
20 | <style name="mProgress_circle"> | 43 | <style name="mProgress_circle"> |
21 | <item name="android:indeterminateDrawable">@anim/progress_circle_shape</item> | 44 | <item name="android:indeterminateDrawable">@anim/progress_circle_shape</item> |
22 | <item name="android:minWidth">25dp</item> | 45 | <item name="android:minWidth">25dp</item> |
@@ -78,4 +101,41 @@ | @@ -78,4 +101,41 @@ | ||
78 | <item name="android:windowFullscreen">true</item> | 101 | <item name="android:windowFullscreen">true</item> |
79 | </style> | 102 | </style> |
80 | 103 | ||
104 | + <style name="TextSingle"> | ||
105 | + <item name="android:gravity">center_vertical|start</item> | ||
106 | + <item name="android:layout_width">match_parent</item> | ||
107 | + <item name="android:layout_height">52dp</item> | ||
108 | + <item name="android:textSize">18sp</item> | ||
109 | + <item name="android:paddingEnd">16dp</item> | ||
110 | + <item name="android:paddingStart">16dp</item> | ||
111 | + <item name="android:textColor">@color/black</item> | ||
112 | + </style> | ||
113 | + | ||
114 | + <style name="TextLeft" parent="@style/TextSingle"> | ||
115 | + <item name="android:layout_width">0dp</item> | ||
116 | + <item name="android:layout_weight">1</item> | ||
117 | + <item name="android:paddingEnd">0dp</item> | ||
118 | + <item name="android:paddingStart">0dp</item> | ||
119 | + </style> | ||
120 | + | ||
121 | + <style name="LinearText"> | ||
122 | + <item name="android:layout_width">match_parent</item> | ||
123 | + <item name="android:layout_height">52dp</item> | ||
124 | + <item name="android:paddingEnd">16dp</item> | ||
125 | + <item name="android:paddingStart">16dp</item> | ||
126 | + <item name="android:orientation">horizontal</item> | ||
127 | + <item name="android:gravity">center_vertical</item> | ||
128 | + <item name="android:foreground">?android:attr/selectableItemBackground</item> | ||
129 | + </style> | ||
130 | + | ||
131 | + <style name="RadiusRight"> | ||
132 | + <item name="android:layout_width">wrap_content</item> | ||
133 | + <item name="android:layout_height">52dp</item> | ||
134 | + </style> | ||
135 | + | ||
136 | + <style name="Space"> | ||
137 | + <item name="android:layout_width">match_parent</item> | ||
138 | + <item name="android:layout_height">0.5dp</item> | ||
139 | + <item name="android:background">@color/text_light_gray</item> | ||
140 | + </style> | ||
81 | </resources> | 141 | </resources> |
-
请 注册 或 登录 后发表评论