Commit 8de7acb0 by 刘鹏

信息收集部分逻辑优化

parent a50a6fe1
...@@ -10,7 +10,7 @@ ext { ...@@ -10,7 +10,7 @@ ext {
"m-fm" : "0.0.30.03", "m-fm" : "0.0.30.03",
"m-user" : "0.0.61.37", "m-user" : "0.0.61.37",
"m-home" : "0.0.22.65", "m-home" : "0.0.22.65",
"m-im" : "0.0.19.20", "m-im" : "0.0.19.25",
"m-dynamic" : "0.0.7.22", "m-dynamic" : "0.0.7.22",
"m-article" : "0.0.0.10", "m-article" : "0.0.0.10",
......
...@@ -71,6 +71,7 @@ ...@@ -71,6 +71,7 @@
<activity <activity
android:name=".ui.activity.CmsExamQuestionPaperActivity" android:name=".ui.activity.CmsExamQuestionPaperActivity"
android:screenOrientation="portrait" android:screenOrientation="portrait"
android:launchMode="singleTask"
android:theme="@style/platform_NoTitleTheme" /> android:theme="@style/platform_NoTitleTheme" />
<!-- 云信 集成配置 --> <!-- 云信 集成配置 -->
......
...@@ -105,7 +105,7 @@ object IMChatUtil { ...@@ -105,7 +105,7 @@ object IMChatUtil {
.subscribe({ res: BaseResponse<UserTypeBean> -> .subscribe({ res: BaseResponse<UserTypeBean> ->
if (res.code == 200 && res.data != null) { if (res.code == 200 && res.data != null) {
if (res.data!!.collectEvent &&TextUtils.equals(res.data!!.userType, USER_TYPE_ASSISTANT.toString()) && res.data!!.collectEvent) { if (res.data!!.collectEvent &&TextUtils.equals(res.data!!.userType, USER_TYPE_ASSISTANT.toString())) {
//和助理私聊需要打开信息采集弹窗 //和助理私聊需要打开信息采集弹窗
prepareAssistantChatData( prepareAssistantChatData(
context, context,
...@@ -209,7 +209,7 @@ object IMChatUtil { ...@@ -209,7 +209,7 @@ object IMChatUtil {
}) { t: Throwable? -> }) { t: Throwable? ->
handleError(context, t!!) handleError(context, t!!)
} }
} else if (TextUtils.equals(res.data!!.userType, USER_TYPE_ASSISTANT.toString()) && res.data!!.collectEvent) {//助理 } else if (TextUtils.equals(res.data!!.userType, USER_TYPE_ASSISTANT.toString())) {//助理
prepareAssistantChatData(context, toUid, object : ChatDataRequestListener { prepareAssistantChatData(context, toUid, object : ChatDataRequestListener {
override fun onSuccess(expertInfo: IMExpertBuild) { //新前置信息收集入口 override fun onSuccess(expertInfo: IMExpertBuild) { //新前置信息收集入口
CmsExamQuestionPaperActivity.start( CmsExamQuestionPaperActivity.start(
......
...@@ -56,7 +56,10 @@ class CmsExamQuestionPaperActivity : BaseActivity() { ...@@ -56,7 +56,10 @@ class CmsExamQuestionPaperActivity : BaseActivity() {
private var otherQuestionsBean: QuestionsBean? = null private var otherQuestionsBean: QuestionsBean? = null
/**用于云信聊天界面添加数据使用*/ /**用于云信聊天界面添加数据使用*/
private var mType70RequestList = ArrayList<AnswerQuestionType70RequestBean>(); private var mType70RequestList = ArrayList<AnswerQuestionType70RequestBean>()
/**主诉消息*/
private var mType71RequestList = ArrayList<AnswerQuestionType71RequestBean>()
/**题库*/ /**题库*/
private var mQuestionBean: QuestionsInfoBean? = null private var mQuestionBean: QuestionsInfoBean? = null
...@@ -71,6 +74,7 @@ class CmsExamQuestionPaperActivity : BaseActivity() { ...@@ -71,6 +74,7 @@ class CmsExamQuestionPaperActivity : BaseActivity() {
private var lastAnswer = "" private var lastAnswer = ""
private var noMore = false private var noMore = false
private var haveLingxiQuestion = false
companion object { companion object {
private lateinit var expertInfo: IMExpertBuild private lateinit var expertInfo: IMExpertBuild
...@@ -92,11 +96,11 @@ class CmsExamQuestionPaperActivity : BaseActivity() { ...@@ -92,11 +96,11 @@ class CmsExamQuestionPaperActivity : BaseActivity() {
} }
override fun initDataAndEvent() { override fun initDataAndEvent() {
// if (isJumpToIm()) { if (isJumpToIm()) {
// //如果今天打过题,跳转到聊天界面 //如果今天打过题,跳转到聊天界面
// skipToIm() skipToIm()
// return return
// } }
//初始化 //初始化
initRecycle() initRecycle()
//设置view事件 //设置view事件
...@@ -157,6 +161,14 @@ class CmsExamQuestionPaperActivity : BaseActivity() { ...@@ -157,6 +161,14 @@ class CmsExamQuestionPaperActivity : BaseActivity() {
hideInputMethod(et_input_problem) hideInputMethod(et_input_problem)
} }
override fun zsItemClick(answer: String, postion: Int) {
//主诉
addType71Request(answer)
mackType2(answer)
makeType6(postion + 1)
}
}) })
mQuestionAdapter.setOnItemChildClickListener { adapter, view, position -> mQuestionAdapter.setOnItemChildClickListener { adapter, view, position ->
...@@ -195,43 +207,17 @@ class CmsExamQuestionPaperActivity : BaseActivity() { ...@@ -195,43 +207,17 @@ class CmsExamQuestionPaperActivity : BaseActivity() {
showSkipDialog() showSkipDialog()
} }
tv_finish.setOnClickListener { tv_finish.setOnClickListener {
mType70RequestList.forEach { skipToIm()
instance.lingxiAnswerQuestion(JSON.toJSONString(it))
.subscribeOn(Schedulers.io())
.observeOn(Schedulers.io())
.subscribe()
}
val answerQuestionType71RequestBean = AnswerQuestionType71RequestBean()
val dataBean = AnswerQuestionType71RequestBean.DataBean()
dataBean.answer = lastAnswer
answerQuestionType71RequestBean.data = dataBean
answerQuestionType71RequestBean.toUid= toUid
answerQuestionType71RequestBean.fromUid=ImIn.getUserInfo()?.uid
instance.lingxiAnswerQuestion(JSON.toJSONString(answerQuestionType71RequestBean))
.subscribeOn(Schedulers.io())
.observeOn(Schedulers.io())
.subscribe()
Handler().postDelayed({
skipToIm()
}, 500L)
} }
tv_send.setOnClickListener { tv_send.setOnClickListener {
if (noMore) { if (noMore) {
//最后一题 点击发送 //最后一题 点击发送
lastAnswer = et_input_problem.text.toString() lastAnswer = et_input_problem.text.toString()
tv_finish.visibility = View.VISIBLE addType71Request(et_input_problem.text.toString())
val questionMultiItem = QuestionMultiItem() tv_finish.visibility = View.VISIBLE
questionMultiItem.type2Text = lastAnswer mackType2(lastAnswer)
questionMultiItem.viewType = 2
mData.add(questionMultiItem)
mQuestionAdapter.notifyDataSetChanged()
//滑动到底部 //滑动到底部
recycle.scrollToPosition(mData.size - 1) recycle.scrollToPosition(mData.size - 1)
mData.forEachIndexed { index, _ -> mData.forEachIndexed { index, _ ->
...@@ -386,70 +372,14 @@ class CmsExamQuestionPaperActivity : BaseActivity() { ...@@ -386,70 +372,14 @@ class CmsExamQuestionPaperActivity : BaseActivity() {
} }
mData.add(questionMultiItem2) mData.add(questionMultiItem2)
} else { } else {
//没有下一题了,展示描述题 //没有下一题了,跳转按钮展示
tv_finish.visibility = View.VISIBLE
val questionMultiItem5 = QuestionMultiItem()
questionMultiItem5.type5Bean = mQuestionBean!!.questions[1]
questionMultiItem5.viewType = 5
mData.add(questionMultiItem5)
//最后一提,
noMore = true
//显示输入框
cl_input.visibility = LinearLayout.VISIBLE
tv_problem.visibility = LinearLayout.GONE
hsv_problem_tips.visibility = LinearLayout.VISIBLE
et_input_problem.hint = "请简单描述遇到的问题……\n\n\n"
// 打开软件盘
showInputMethod(et_input_problem)
// 滚动到底部
Handler().postDelayed({
recycle.scrollToPosition(mData.size - 1)
}, 500L)
} }
mQuestionAdapter.notifyDataSetChanged() mQuestionAdapter.notifyDataSetChanged()
recycle.scrollToPosition(mData.size - 1) recycle.scrollToPosition(mData.size - 1)
} }
/** /**
* 创建回答问题 并刷新多选状态为不可选
* @param otherInput 点击其他输入文字
* */
private fun sendAnswerText(list: List<OptionsBean>, otherInput: String) {
var answerStr = ""
list.forEach {
if (answerStr.isNotEmpty()) {
answerStr = if ("其他" == it.name) {
"$answerStr、$otherInput"
} else {
answerStr + "、" + it.name
}
} else {
answerStr += if ("其他" == it.name) {
otherInput
} else {
it.name
}
}
}
val questionMultiItem = QuestionMultiItem()
questionMultiItem.type2Text = answerStr
questionMultiItem.viewType = 2
mData.add(questionMultiItem)
mQuestionAdapter.notifyDataSetChanged()
//刷新已回答问题,将多选设置成不可再选
mData.forEachIndexed { index, _ ->
mData[index].type4CanClick = false
}
}
/**
* 回答单选问题 * 回答单选问题
* @param question 问题 * @param question 问题
* @param list 选中回答的选项list * @param list 选中回答的选项list
...@@ -461,34 +391,12 @@ class CmsExamQuestionPaperActivity : BaseActivity() { ...@@ -461,34 +391,12 @@ class CmsExamQuestionPaperActivity : BaseActivity() {
list: List<OptionsBean>, list: List<OptionsBean>,
otherInput: String otherInput: String
) { ) {
val answerQuestionRequestBean = AnswerQuestionRequestBean() //回答问题参数创建
answerQuestionRequestBean.examId = answerQuestionId val answerQuestionRequestBean = answerQuestionRequestBean(question, list, otherInput)
answerQuestionRequestBean.questionId = question.id //灵犀消息 参数创建
answerQuestionRequestBean.questionPaperId = question.questionPaperId addType70Request(answerQuestionRequestBean)
answerQuestionRequestBean.uid = ImIn.getUserInfo()?.uid
var answersBeanList = ArrayList<AnswersBean>()
for (optionsBean in list) {
var answersBean = AnswersBean()
answersBean.name = optionsBean.name
answersBean.optionId = optionsBean.id
answersBean.relates = optionsBean.relates
if ("其他" == optionsBean.name && otherInput.isNotEmpty()) {
answersBean.other = otherInput
}
answersBeanList.add(answersBean)
}
answerQuestionRequestBean.answers = answersBeanList
val type70RequestBean = AnswerQuestionType70RequestBean()
type70RequestBean.data = answerQuestionRequestBean
type70RequestBean.fromUid=ImIn.getUserInfo()?.uid
type70RequestBean.toUid = toUid
//添加回答数据到
mType70RequestList.add(type70RequestBean)
//请求接口 回答问题
instance.answerQuestion(answerQuestionId, JSON.toJSONString(answerQuestionRequestBean)) instance.answerQuestion(answerQuestionId, JSON.toJSONString(answerQuestionRequestBean))
.subscribeOn(Schedulers.io()) .subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread()) .observeOn(AndroidSchedulers.mainThread())
...@@ -511,10 +419,17 @@ class CmsExamQuestionPaperActivity : BaseActivity() { ...@@ -511,10 +419,17 @@ class CmsExamQuestionPaperActivity : BaseActivity() {
//设置数据,清空list数据 //设置数据,清空list数据
mData.clear() mData.clear()
//取到问候语 //取到问候语
getFirstQuestion(resp.data) getFirstQuestion()
//取出第二条消息 //取出第二条消息
setSecondQuestion() if (resp.data.questions.size > 0) {
createExams() haveLingxiQuestion = true
setSecondQuestionByLx()
createExams()
} else {
haveLingxiQuestion = false
makeType6(0)
}
} else { } else {
//无答题数据,跳转到聊天界面 //无答题数据,跳转到聊天界面
IMChatUtil.startChatSessionByCms( IMChatUtil.startChatSessionByCms(
...@@ -554,48 +469,207 @@ class CmsExamQuestionPaperActivity : BaseActivity() { ...@@ -554,48 +469,207 @@ class CmsExamQuestionPaperActivity : BaseActivity() {
}) })
} }
/***取到问候语*/ /***
private fun getFirstQuestion(questionInfo: QuestionsInfoBean) { * 取到问候语
* */
private fun getFirstQuestion() {
val questionMultiItem = QuestionMultiItem() val questionMultiItem = QuestionMultiItem()
questionMultiItem.type1Text = questionInfo.questions[0].question questionMultiItem.type1Text = "你好,为了更好的帮助您我们需要了解些基本信息,我们将会严格保护你的隐私安全,请放心。"
questionMultiItem.viewType = 1 questionMultiItem.viewType = 1
mData.add(questionMultiItem) mData.add(questionMultiItem)
mQuestionAdapter.notifyDataSetChanged() mQuestionAdapter.notifyDataSetChanged()
} }
/***问候语之后第一道题*/ /***问候语之后 灵犀第一道题*/
private fun setSecondQuestion() { private fun setSecondQuestionByLx() {
val questionMultiItem2 = QuestionMultiItem() val questionMultiItem2 = QuestionMultiItem()
mQuestionBean!!.questionPaper.questionChains.forEach { (k, v) -> mQuestionBean!!.questionPaper.questionChains.forEach { (k, v) ->
if (v.head) { if (v.head) {
// 代表第一题 ,使用questionId 去questions取到对应的提 // 代表第一题 ,使用questionId 去questions取到对应的提
val questionsBean = mQuestionBean!!.questionPaper.questions[v.questionId] makeType3OrType4(v, questionMultiItem2)
questionMultiItem2.questionsBean = questionsBean
if ("radio" == questionsBean?.type) {
questionMultiItem2.viewType = 3
} else {
questionMultiItem2.viewType = 4
questionMultiItem2.type4CanClick = true
}
mData.add(questionMultiItem2)
mQuestionAdapter.notifyDataSetChanged()
return@forEach return@forEach
} }
} }
} }
/**
* 创建回答问题 并刷新多选状态为不可选
* @param otherInput 点击其他输入文字
* */
private fun sendAnswerText(list: List<OptionsBean>, otherInput: String) {
var answerStr = ""
list.forEach {
answerStr = "$answerStr#${it.name}"
}
if (otherInput.isNotEmpty()) {
answerStr = "$answerStr \n \n otherInput"
}
mackType2(answerStr)
//刷新已回答问题,将多选设置成不可再选
mData.forEachIndexed { index, _ ->
mData[index].type4CanClick = false
}
}
/**
* 创建消息类型2
*
* @param answerStr 用户展示的文字回复
* */
private fun mackType2(answerStr: String) {
val questionMultiItem = QuestionMultiItem()
questionMultiItem.type2Text = answerStr
questionMultiItem.viewType = 2
mData.add(questionMultiItem)
mQuestionAdapter.notifyDataSetChanged()
}
/**
* 创建消息类型3 类型4
* */
private fun makeType3OrType4(
questionChain: QuestionChainsBean,
questionMultiItem2: QuestionMultiItem
) {
val questionsBean = mQuestionBean!!.questionPaper.questions[questionChain.questionId]
questionMultiItem2.questionsBean = questionsBean
if ("radio" == questionsBean?.type) {
questionMultiItem2.viewType = 3
} else {
questionMultiItem2.viewType = 4
questionMultiItem2.type4CanClick = true
}
mData.add(questionMultiItem2)
mQuestionAdapter.notifyDataSetChanged()
}
/**最后一条道题*/
private fun makeType5() {
val questionMultiItem5 = QuestionMultiItem()
questionMultiItem5.type5Bean = mQuestionBean!!.questions[0]
questionMultiItem5.viewType = 5
mData.add(questionMultiItem5)
//最后一提,
noMore = true
//显示输入框
cl_input.visibility = LinearLayout.VISIBLE
tv_problem.visibility = LinearLayout.GONE
hsv_problem_tips.visibility = LinearLayout.VISIBLE
et_input_problem.hint = "请简单描述遇到的问题……\n\n\n"
// 打开软件盘
showInputMethod(et_input_problem)
// 滚动到底部
Handler().postDelayed({
recycle.scrollToPosition(mData.size - 1)
}, 500L)
}
/***
*
* 问候语之后 主诉题消息创建
*
* */
private fun makeType6(position: Int) {
val extraQuestions = mQuestionBean!!.extraQuestions
if (position < extraQuestions.size) {
// 代表第一题 ,使用questionId 去questions取到对应的提
val questionMultiItem2 = QuestionMultiItem()
val questionsBean = mQuestionBean!!.extraQuestions[position]
questionMultiItem2.questionsBean = questionsBean
questionMultiItem2.type6Position = position
questionMultiItem2.viewType = 6
mData.add(questionMultiItem2)
mQuestionAdapter.notifyDataSetChanged()
} else {
makeType5()
}
}
/**
* 创建 回答问题参数
* */
private fun answerQuestionRequestBean(
question: QuestionsBean,
list: List<OptionsBean>,
otherInput: String
): AnswerQuestionRequestBean {
val answerQuestionRequestBean = AnswerQuestionRequestBean()
answerQuestionRequestBean.examId = answerQuestionId
answerQuestionRequestBean.questionId = question.id
answerQuestionRequestBean.questionPaperId = question.questionPaperId
answerQuestionRequestBean.uid = ImIn.getUserInfo()?.uid
var answersBeanList = ArrayList<AnswersBean>()
for (optionsBean in list) {
var answersBean = AnswersBean()
answersBean.name = optionsBean.name
answersBean.optionId = optionsBean.id
answersBean.relates = optionsBean.relates
if ("其他" == optionsBean.name && otherInput.isNotEmpty()) {
answersBean.other = otherInput
}
answersBeanList.add(answersBean)
}
answerQuestionRequestBean.answers = answersBeanList
return answerQuestionRequestBean
}
/**
* 创建灵犀消息参数
* */
private fun addType70Request(answerQuestionRequestBean: AnswerQuestionRequestBean) {
val type70RequestBean = AnswerQuestionType70RequestBean()
type70RequestBean.data = answerQuestionRequestBean
type70RequestBean.fromUid = ImIn.getUserInfo()?.uid
type70RequestBean.toUid = toUid
//添加回答数据到
mType70RequestList.add(type70RequestBean)
}
/**
* 创建主诉消息参数
* */
private fun addType71Request(answer: String) {
val answerQuestionType71RequestBean = AnswerQuestionType71RequestBean()
val dataBean = AnswerQuestionType71RequestBean.DataBean()
dataBean.answer = answer
answerQuestionType71RequestBean.data = dataBean
answerQuestionType71RequestBean.toUid = toUid
answerQuestionType71RequestBean.fromUid = ImIn.getUserInfo()?.uid
mType71RequestList.add(answerQuestionType71RequestBean)
}
/*** /***
* 判断今天是否展示过 * 判断今天是否展示过
* */ * */
private fun isJumpToIm(): Boolean { private fun isJumpToIm(): Boolean {
val time = val time = System.currentTimeMillis()
Calendar.getInstance()[Calendar.YEAR].toString() + "-" + Calendar.getInstance()[Calendar.MONTH] + Calendar.getInstance()[Calendar.DAY_OF_MONTH]
return TextUtils.equals( val skipTime = SharedPreferencesEditor.getString("skip_time_")
time, if (skipTime == null || skipTime.isEmpty()) {
SharedPreferencesEditor.getString("skip_time_" + ImIn.getUserInfo()?.uid) return false
) }
val timeDifference = time - skipTime.toLong()
val second = 1000
val minute = second * 60
val hour = minute * 60
val day = hour * 24
return timeDifference > 2 * second
} }
/** /**
...@@ -623,6 +697,22 @@ class CmsExamQuestionPaperActivity : BaseActivity() { ...@@ -623,6 +697,22 @@ class CmsExamQuestionPaperActivity : BaseActivity() {
* 跳过,直接取IM界面 * 跳过,直接取IM界面
* */ * */
private fun skipToIm() { private fun skipToIm() {
SharedPreferencesEditor.putString("skip_time_", System.currentTimeMillis().toString())
mType70RequestList.forEach {
instance.lingxiAnswerQuestion(JSON.toJSONString(it))
.subscribeOn(Schedulers.io())
.observeOn(Schedulers.io())
.subscribe()
}
mType71RequestList.forEach {
instance.lingxiAnswerQuestion(JSON.toJSONString(it))
.subscribeOn(Schedulers.io())
.observeOn(Schedulers.io())
.subscribe()
}
IMChatUtil.startChatSessionByCms( IMChatUtil.startChatSessionByCms(
toUid, expertInfo, isFromQingShu, this@CmsExamQuestionPaperActivity toUid, expertInfo, isFromQingShu, this@CmsExamQuestionPaperActivity
) )
......
...@@ -46,6 +46,8 @@ public class QuestionAdapter extends BaseMultiItemQuickAdapter<QuestionMultiItem ...@@ -46,6 +46,8 @@ public class QuestionAdapter extends BaseMultiItemQuickAdapter<QuestionMultiItem
addItemType(4, R.layout.item_left_more_check_layout); addItemType(4, R.layout.item_left_more_check_layout);
//左----描述题 //左----描述题
addItemType(5, R.layout.item_left_describe_layout); addItemType(5, R.layout.item_left_describe_layout);
//主诉----单选
addItemType(6, R.layout.item_left_one_check_layout);
} }
...@@ -77,46 +79,88 @@ public class QuestionAdapter extends BaseMultiItemQuickAdapter<QuestionMultiItem ...@@ -77,46 +79,88 @@ public class QuestionAdapter extends BaseMultiItemQuickAdapter<QuestionMultiItem
case 4: case 4:
//多选 //多选
convertType4(helper, item); convertType4(helper, item);
break; break;
case 5: case 5:
helper.setText(R.id.multiple_choice_title, item.type5Bean.question); convertType5(helper, item);
helper.setText(R.id.example, item.type5Bean.example); break;
SpannableString spannableString = new SpannableString(mContext.getResources().getString(R.string.question_notes)); case 6:
spannableString.setSpan(new ForegroundColorSpan(Color.parseColor("#1DA1F2")), 28, spannableString.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); convertType6(helper, item);
helper.setText(R.id.tv_notes, spannableString); break;
default:
break;
}
}
/**
* 主诉消息
* */
private void convertType6(BaseViewHolder helper, QuestionMultiItem item) {
RecyclerView OneRecycle = helper.getView(R.id.tv_one_list);
TextView oneTitle = helper.getView(R.id.multiple_choice_title);
oneTitle.setText(item.questionsBean.name);
int oneMaxSize = 0;
for (OptionsBean option : item.questionsBean.options) {
int length = option.name.length();
if (length > mTextMaxSize) {
oneMaxSize = length;
break;
} else if (oneMaxSize < length) {
oneMaxSize = option.name.length();
}
}
GridLayoutManager gridLayoutManager = new GridLayoutManager(AVChatKit.getContext(), oneMaxSize > mTextMaxSize ? 1 : 2);
OneRecycle.setLayoutManager(gridLayoutManager);
QuestionOneCheckAdapter oneCheckAdapter = new QuestionOneCheckAdapter(item.questionsBean.options);
OneRecycle.setAdapter(oneCheckAdapter);
oneCheckAdapter.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
List<OptionsBean> data = oneCheckAdapter.getData();
for (OptionsBean datum : data) {
if (datum.check) {
//如果已有选项被选择,择不触发后续事件
return;
}
}
oneCheckAdapter.getData().get(position).check = true;
oneCheckAdapter.notifyDataSetChanged();
mOneCheckListener.zsItemClick(data.get(position).name, item.type6Position);
}
});
}
View type5_line = helper.getView(R.id.type5_line); private void convertType5(BaseViewHolder helper, QuestionMultiItem item) {
TextView example = helper.getView(R.id.example); helper.setText(R.id.multiple_choice_title, item.type5Bean.question);
helper.setText(R.id.example, item.type5Bean.example);
SpannableString spannableString = new SpannableString(mContext.getResources().getString(R.string.question_notes));
spannableString.setSpan(new ForegroundColorSpan(Color.parseColor("#1DA1F2")), 28, spannableString.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
helper.setText(R.id.tv_notes, spannableString);
if (example.getVisibility() == View.GONE) { View type5_line = helper.getView(R.id.type5_line);
type5_line.setVisibility(View.VISIBLE); TextView example = helper.getView(R.id.example);
example.setVisibility(View.VISIBLE);
} else {
type5_line.setVisibility(View.GONE);
example.setVisibility(View.GONE);
}
if (item.type5Open) {
type5_line.setVisibility(View.VISIBLE);
example.setVisibility(View.VISIBLE);
} else {
type5_line.setVisibility(View.GONE);
example.setVisibility(View.GONE);
}
if (item.type5CanClick){
helper.getView(R.id.type5_parent).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mOneCheckListener.showKeyboard();
}
});
helper.addOnClickListener(R.id.tv_notes); if (example.getVisibility() == View.GONE) {
type5_line.setVisibility(View.VISIBLE);
example.setVisibility(View.VISIBLE);
} else {
type5_line.setVisibility(View.GONE);
example.setVisibility(View.GONE);
}
if (item.type5Open) {
type5_line.setVisibility(View.VISIBLE);
example.setVisibility(View.VISIBLE);
} else {
type5_line.setVisibility(View.GONE);
example.setVisibility(View.GONE);
}
if (item.type5CanClick) {
helper.getView(R.id.type5_parent).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mOneCheckListener.showKeyboard();
} }
});
break; helper.addOnClickListener(R.id.tv_notes);
default:
break;
} }
} }
......
...@@ -14,7 +14,7 @@ public class QuestionMultiItem implements MultiItemEntity { ...@@ -14,7 +14,7 @@ public class QuestionMultiItem implements MultiItemEntity {
public String type1Text; public String type1Text;
public String type2Text; public String type2Text;
/***type 3 单选 type 4 多选 */ /***type 3 单选 type 4 多选 type 6 */
public QuestionsBean questionsBean; public QuestionsBean questionsBean;
public boolean type4CanClick; public boolean type4CanClick;
...@@ -26,6 +26,8 @@ public class QuestionMultiItem implements MultiItemEntity { ...@@ -26,6 +26,8 @@ public class QuestionMultiItem implements MultiItemEntity {
/***type5 展开or 收起*/ /***type5 展开or 收起*/
public boolean type5Open = true; public boolean type5Open = true;
public int type6Position;
@Override @Override
public int getItemType() { public int getItemType() {
return viewType; return viewType;
......
...@@ -21,4 +21,10 @@ interface QuestionOneCheckListener { ...@@ -21,4 +21,10 @@ interface QuestionOneCheckListener {
* 隐藏其他 * 隐藏其他
*/ */
fun hideOtherEdit() fun hideOtherEdit()
/**
* 主诉单选点击 多选确定按钮点击获取item信息
*/
fun zsItemClick(answer: String, postion: Int)
} }
\ No newline at end of file
...@@ -3,6 +3,9 @@ package com.yidianling.uikit.custom.http.response.question; ...@@ -3,6 +3,9 @@ package com.yidianling.uikit.custom.http.response.question;
import java.io.Serializable; import java.io.Serializable;
import java.util.List; import java.util.List;
/**
* @author liupeng
*/
public class QuestionsBean implements Serializable { public class QuestionsBean implements Serializable {
/** /**
......
...@@ -27,6 +27,7 @@ public class QuestionsInfoBean { ...@@ -27,6 +27,7 @@ public class QuestionsInfoBean {
*/ */
public QuestionPaperBean questionPaper; public QuestionPaperBean questionPaper;
public List<QuestionsBeanExample> questions; public List<QuestionsBeanExample> questions;
//无数据的默认题
public List<QuestionsBean> extraQuestions;
} }
...@@ -64,11 +64,12 @@ ...@@ -64,11 +64,12 @@
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/cl_input" android:id="@+id/cl_input"
android:layout_width="match_parent" android:layout_width="match_parent"
app:layout_constraintBottom_toTopOf="@id/tv_finish"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical" android:orientation="vertical"
android:visibility="gone" android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
tools:visibility="visible"> tools:visibility="gone">
<TextView <TextView
android:id="@+id/tv_problem" android:id="@+id/tv_problem"
...@@ -199,7 +200,7 @@ ...@@ -199,7 +200,7 @@
android:textSize="16sp" android:textSize="16sp"
android:visibility="gone" android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
tools:visibility="gone" /> tools:visibility="visible" />
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment