You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

选中“Service Call”后如何将TextInputEditText设为只读并置灰

解决方案:选中"Service Call"后设置TextInputEditText只读并置灰

首先确保你已获取到目标TextInputEditText的实例(比如通过findViewById或ViewBinding),假设该输入框变量名为surveyDateEt,在现有观察回调中补充以下逻辑即可实现需求:

processViewModel.isServiceCall.observe(viewLifecycleOwner){ isServiceCall ->
    if (isServiceCall){
        val surveyDateAndTime: String = DateUtil.localFullDateToDateStringFormatted(Date())
        processViewModel.surveySiteFormInfo
            .siteSurveyStepOneInfo
            .surveyDataAndTimeWorkPerformedInfo
            .surveyDateAndTime = surveyDateAndTime

        // 设置输入框只读并置灰
        surveyDateEt?.apply {
            // 禁止焦点获取与输入交互
            isFocusable = false
            isFocusableInTouchMode = false
            isClickable = false
            keyListener = null
            // 设置文本为灰色(可替换为项目自定义资源色,如R.color.text_grey)
            setTextColor(ContextCompat.getColor(context, android.R.color.darker_gray))
        }

        room_add_layout?.isEnabled = false
        room_add_layout?.setOnClickListener(null)
    }
    else{
        processViewModel.surveySiteFormInfo
            .siteSurveyStepOneInfo
            .surveyDataAndTimeWorkPerformedInfo
            .surveyDateAndTime = ""

        // 恢复输入框可编辑状态与正常文本色
        surveyDateEt?.apply {
            isFocusable = true
            isFocusableInTouchMode = true
            isClickable = true
            // 恢复默认输入监听
            keyListener = TextKeyListener.getInstance()
            // 恢复默认文本颜色(替换为项目正常文本色,如R.color.text_black)
            setTextColor(ContextCompat.getColor(context, android.R.color.black))
        }
    }
}

关键逻辑说明:

  • 只读实现:通过isFocusable、isFocusableInTouchMode、isClickable禁用交互,配合keyListener = null彻底屏蔽输入能力,比仅设置isEnabled = false更贴合"只读"场景(后者会让整个控件样式变灰,而此方案可保留控件基础样式)。
  • 文本置灰:使用setTextColor设置灰色文本,推荐使用项目中定义的资源色,避免硬编码颜色值。
  • 状态恢复:取消选中时需将输入框的交互性和文本颜色恢复至初始状态,避免影响后续操作。

若项目使用ViewBinding,直接通过Binding对象获取输入框实例即可,无需findViewById。

内容的提问来源于stack exchange,提问作者OEThe11

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 09:50:09