Commit c9fbc1d4 authored by shiyuelong's avatar shiyuelong

个人认证选择职业标签改成读取本地json 文件配置

parent bc50fdec
...@@ -14,5 +14,6 @@ class XEventConfig { ...@@ -14,5 +14,6 @@ class XEventConfig {
const val UPDATE_COMMENT: String = "updateComment" const val UPDATE_COMMENT: String = "updateComment"
const val UPDATE_LIKE: String = "updateLike" const val UPDATE_LIKE: String = "updateLike"
const val GIF_DATA: String = "gifData" const val GIF_DATA: String = "gifData"
const val CHOOSE_CAREER: String = "chooseCareer"
} }
} }
\ No newline at end of file
[
{
"category": "专业咨询服务",
"list": [
"律师",
"心理咨询",
"情感咨询",
"翻译"
]
},
{
"category": "互联网IT",
"list": [
"程序员",
"运营",
"电商",
"IT服务"
]
},
{
"category": "农林畜牧",
"list": [
"养殖/繁殖",
"农民",
"农业种植",
"花匠"
]
},
{
"category": "医疗健康",
"list": [
"医生",
"护士",
"中医",
"口腔",
"兽医",
"养生保健"
]
},
{
"category": "司机货运",
"list": [
"出租车",
"专职司机",
"物料运输",
"汽车租赁",
"代驾"
]
},
{
"category": "媒体广告",
"list": [
"广告传媒",
"平面设计",
"新媒体运营",
"记者",
"自媒体",
"演员",
"手艺人",
"经纪人",
"主播",
"网红",
"导演",
"编辑",
"摄像师",
"模特",
"歌手",
"运动员",
"自由撰稿人"
]
},
{
"category": "工程基建",
"list": [
"普通",
"工程师",
"施工管理",
"工程设备租赁",
"建材",
"农民工",
"消防施工改造"
]
},
{
"category": "房租销售",
"list": [
"房屋中介",
"房产顾问",
"房屋出租",
"地产开发",
"房屋买卖"
]
},
{
"category": "教育培训",
"list": [
"公办教师",
"课外培训",
"艺术培训",
"教育咨询",
"游泳教练",
"幼师",
"驾校培训",
"学历提升"
]
},
{
"category": "生成制造",
"list": [
"汽车制造",
"数控车床",
"机械加工制造",
"电焊工",
"纺织制造",
"农业生产",
"视频加工",
"手工制造"
]
},
{
"category": "生活服务",
"list": [
"快递",
"安保/保安",
"家政",
"保洁",
"空调维修",
"汽车服务",
"搬家",
"保姆",
"水电维修",
"电脑维修",
"家电维修",
"宠物美容",
"宠物医院",
"手机维修",
"代办服务",
"社工/义工",
"导游服务",
"汽车评估师",
"宝妈",
"插画师",
"画家",
"废品回收",
"电梯维护",
"烟酒回收",
"珠宝首饰回收",
"风水师",
"疏通维修"
]
},
{
"category": "美容美体",
"list": [
"理发",
"美容护肤",
"美甲",
"美瞳",
"化妆师",
"烫发染发",
"保健按摩",
"健身",
"医美整形",
"纹身师",
"减肥瘦身"
]
},
{
"category": "行政管理",
"list": [
"人力资源",
"猎头顾问",
"企业管理",
"劳务派遣",
"酒店管理",
"企业员工",
"后勤管理"
]
},
{
"category": "装修装饰",
"list": [
"室内装修",
"装修设计",
"装修装潢施工",
"家具定制",
"水电暖施工改造"
]
},
{
"category": "财务审计",
"list": [
"财务",
"审计",
"会计",
"出纳",
"财务代理"
]
},
{
"category": "金融保险",
"list": [
"保险销售",
"理财投资",
"银行贷款"
]
},
{
"category": "销售营销",
"list": [
"二手车",
"家具销售",
"五金建材",
"服装销售",
"建材销售",
"房租销售",
"市场营销策划",
"烟酒销售",
"超市",
"电商",
"手机销售",
"珍宝贵金属销售",
"蔬菜水果销售",
"食品销售",
"销售经理",
"个体经营"
]
},
{
"category": "餐饮娱乐",
"list": [
"餐饮服务",
"KTV",
"酒吧",
"网吧/网咖",
"洗浴",
"温泉",
"旅游服务"
]
},
{
"category": "其他",
"list": [
"退休人员",
"退伍军人",
"家庭主妇",
"收藏家"
]
}
]
\ No newline at end of file
...@@ -17,93 +17,100 @@ import com.yidian.utils.DensityUtil ...@@ -17,93 +17,100 @@ import com.yidian.utils.DensityUtil
* description: 商户服务分组adapter * description: 商户服务分组adapter
*/ */
class MerchantServiceGroupAdapter @JvmOverloads constructor( class MerchantServiceGroupAdapter @JvmOverloads constructor(
val context: Context, val context: Context,
data: List<GetConfigListBean.Item>? = null data: List<GetConfigListBean.Item>? = null
) : ) :
RecyclerView.Adapter<MerchantServiceGroupAdapter.MerchantServiceGroupViewHolder>() { RecyclerView.Adapter<MerchantServiceGroupAdapter.MerchantServiceGroupViewHolder>() {
companion object { companion object {
// 是否显示标识 // 是否显示标识(1:显示;0:不显示)
private const val GROUP_SHOW = 1 private const val GROUP_SHOW = 1
} }
private lateinit var viewBinding: ItemMerchantServiceGroupBinding private lateinit var viewBinding: ItemMerchantServiceGroupBinding
/** /**
* 数据源 * 数据源
*/ */
private val groupData by lazy { private val groupData by lazy {
ArrayList<GetConfigListBean.Item>() ArrayList<GetConfigListBean.Item>()
} }
init { init {
// 将不显示的数据去除 // 将不显示的数据去除
data?.let { data?.let {
(it as ArrayList<GetConfigListBean.Item>).iterator().apply { it.forEach { menuItem ->
while (hasNext()) { if (menuItem.show == GROUP_SHOW) {
if (next().show != GROUP_SHOW) remove() groupData.add(menuItem)
}
}
groupData.addAll(it)
} }
}
// (it as ArrayList<GetConfigListBean.Item>).iterator().apply {
// while (hasNext()) {
// if (next().show != GROUP_SHOW) remove()
// }
// }
// groupData.addAll(it)
} }
}
/** // /**
* 更换数据 将不显示的数据去除 // * 更换数据 将不显示的数据去除
*/ // */
fun updateData(data: List<GetConfigListBean.Item>?) { // fun updateData(data: List<GetConfigListBean.Item>?) {
data?.let { // data?.let {
groupData.clear() // groupData.clear()
(it as ArrayList<GetConfigListBean.Item>).iterator().apply { // (it as ArrayList<GetConfigListBean.Item>).iterator().apply {
while (hasNext()) { // while (hasNext()) {
if (next().show != GROUP_SHOW) remove() // if (next().show != GROUP_SHOW) remove()
} // }
} // }
groupData.addAll(it) // groupData.addAll(it)
notifyDataSetChanged() // notifyDataSetChanged()
} // }
} // }
override fun onCreateViewHolder( override fun onCreateViewHolder(
parent: ViewGroup, parent: ViewGroup,
viewType: Int viewType: Int
): MerchantServiceGroupViewHolder { ): MerchantServiceGroupViewHolder {
viewBinding = viewBinding =
ItemMerchantServiceGroupBinding.inflate( ItemMerchantServiceGroupBinding.inflate(
LayoutInflater.from(parent.context), LayoutInflater.from(parent.context),
parent, parent,
false false
) )
return MerchantServiceGroupViewHolder(viewBinding.root, viewBinding) return MerchantServiceGroupViewHolder(viewBinding.root, viewBinding)
} }
override fun onBindViewHolder(holder: MerchantServiceGroupViewHolder, position: Int) { override fun onBindViewHolder(holder: MerchantServiceGroupViewHolder, position: Int) {
val data = groupData[position] val data = groupData[position]
if (data.show != GROUP_SHOW) return if (data.show != GROUP_SHOW) return
holder.viewBinding.tvTitle.text = data.group_name holder.viewBinding.tvTitle.text = data.group_name
viewBinding.rvService.layoutManager = viewBinding.rvService.layoutManager = GridLayoutManager(context, 4)
GridLayoutManager(context, 4) viewBinding.rvService.adapter = MerchantServiceFunctionAdapter(context, data.functions)
viewBinding.rvService.adapter = MerchantServiceFunctionAdapter(context, data.functions) }
}
override fun getItemCount(): Int { override fun getItemCount(): Int {
return groupData.size return groupData.size
} }
class MerchantServiceGroupViewHolder( class MerchantServiceGroupViewHolder(
itemView: View, itemView: View,
val viewBinding: ItemMerchantServiceGroupBinding val viewBinding: ItemMerchantServiceGroupBinding
) : RecyclerView.ViewHolder(itemView) ) : RecyclerView.ViewHolder(itemView)
class MerchantServiceGroupItemDecorator : RecyclerView.ItemDecoration() { /**
override fun getItemOffsets( * 管理中心菜单列表的分割线
outRect: Rect, */
view: View, class MerchantServiceGroupItemDecorator : RecyclerView.ItemDecoration() {
parent: RecyclerView, override fun getItemOffsets(
state: RecyclerView.State outRect: Rect,
) { view: View,
outRect.bottom = DensityUtil.dp2px(10f) parent: RecyclerView,
} state: RecyclerView.State
) {
outRect.bottom = DensityUtil.dp2px(10f)
} }
}
} }
\ No newline at end of file
package com.yidian.shenghuoquan.newscontent.bean
import com.google.gson.annotations.SerializedName
/**
* 职业列表数据模型
*/
class CareerListBean : ArrayList<CareerListBeanItem>()
data class CareerListBeanItem(
@SerializedName("category")
val category: String,
@SerializedName("list")
val list: List<String>
)
package com.yidian.shenghuoquan.newscontent.ui.auth package com.yidian.shenghuoquan.newscontent.ui.auth
import android.os.Bundle import android.os.Bundle
import com.google.gson.Gson
import com.yidian.common.XEventConfig
import com.yidian.common.XRouterPathConstants.Companion.CHOOSE_CAREER import com.yidian.common.XRouterPathConstants.Companion.CHOOSE_CAREER
import com.yidian.common.base.BaseActivity import com.yidian.common.base.BaseActivity
import com.yidian.common.extensions.initTitleBar import com.yidian.common.extensions.initTitleBar
import com.yidian.common.services.XEventService
import com.yidian.shenghuoquan.newscontent.R import com.yidian.shenghuoquan.newscontent.R
import com.yidian.shenghuoquan.newscontent.adapter.FirstCareerListAdapter import com.yidian.shenghuoquan.newscontent.adapter.FirstCareerListAdapter
import com.yidian.shenghuoquan.newscontent.adapter.SecondCareerListAdapter import com.yidian.shenghuoquan.newscontent.adapter.SecondCareerListAdapter
import com.yidian.shenghuoquan.newscontent.bean.CareerListBean
import com.yidian.shenghuoquan.newscontent.databinding.ActivityChooseCareerBinding import com.yidian.shenghuoquan.newscontent.databinding.ActivityChooseCareerBinding
import com.yidian.shenghuoquan.newscontent.utils.JsonUtils
import com.yidian.utils.ToastUtil import com.yidian.utils.ToastUtil
import com.yidian.xarc.xevent.XBaseEvent
import com.yidian.xarc.xevent.XEventManager
/** /**
...@@ -16,11 +23,8 @@ import com.yidian.utils.ToastUtil ...@@ -16,11 +23,8 @@ import com.yidian.utils.ToastUtil
*/ */
class ChooseCareerActivity : BaseActivity<ActivityChooseCareerBinding>() { class ChooseCareerActivity : BaseActivity<ActivityChooseCareerBinding>() {
var secondCareer1 = arrayListOf("第一职业1", "第一职业2", "第一职业3", "第一职业4", "第一职业5") private var firstCareer = arrayListOf<String>()
var secondCareer2 = arrayListOf("第二职业1", "第二职业2", "第二职业3", "第二职业4", "第二职业5") private var secondCareer = arrayListOf<String>()
var secondCareer3 = arrayListOf("第三职业1", "第三职业2", "第三职业3", "第三职业4", "第三职业5")
var secondCareer4 = arrayListOf("第四职业1", "第四职业2", "第四职业3", "第四职业4", "第四职业5")
var firstCareer = arrayListOf("互联网", "金融类", "公务员", "自由职业")
private val firstListAdapter: FirstCareerListAdapter by lazy { FirstCareerListAdapter() } private val firstListAdapter: FirstCareerListAdapter by lazy { FirstCareerListAdapter() }
private val secondListAdapter: SecondCareerListAdapter by lazy { SecondCareerListAdapter() } private val secondListAdapter: SecondCareerListAdapter by lazy { SecondCareerListAdapter() }
...@@ -42,30 +46,31 @@ class ChooseCareerActivity : BaseActivity<ActivityChooseCareerBinding>() { ...@@ -42,30 +46,31 @@ class ChooseCareerActivity : BaseActivity<ActivityChooseCareerBinding>() {
initTitleBar(viewBind.include.toolbar, viewBind.include.tvTitle, resources.getString(R.string.choose_career)) initTitleBar(viewBind.include.toolbar, viewBind.include.tvTitle, resources.getString(R.string.choose_career))
viewBind.rvListFirst.adapter = firstListAdapter viewBind.rvListFirst.adapter = firstListAdapter
viewBind.rvListSecond.adapter = secondListAdapter viewBind.rvListSecond.adapter = secondListAdapter
// 解析本地json数据
val jsonStr = JsonUtils.file2JsonStr(this, "Career.json")
val gson = Gson()
val beanList: CareerListBean = gson.fromJson(jsonStr, CareerListBean::class.java)
// 赋值给一级职业分类
beanList.forEach {
firstCareer.add(it.category)
}
// 二级列表默认值
secondCareer.addAll(beanList[0].list)
// 赋值给适配器
firstListAdapter.setList(firstCareer) firstListAdapter.setList(firstCareer)
secondListAdapter.setList(secondCareer1) secondListAdapter.setList(secondCareer)
firstListAdapter.setOnItemClickListener { _, _, position -> firstListAdapter.setOnItemClickListener { _, _, position ->
when (position) { secondListAdapter.setList(beanList[position].list)
0 -> {
secondListAdapter.setList(secondCareer1)
}
1 -> {
secondListAdapter.setList(secondCareer2)
}
2 -> {
secondListAdapter.setList(secondCareer3)
}
3 -> {
secondListAdapter.setList(secondCareer4)
}
}
firstListAdapter.setSelectedIndex(position) firstListAdapter.setSelectedIndex(position)
} }
secondListAdapter.setOnItemClickListener { adapter, _, position -> secondListAdapter.setOnItemClickListener { adapter, _, position ->
secondListAdapter.setSelectedIndex(position) secondListAdapter.setSelectedIndex(position)
val secondCareer = adapter.data[position] as String val secondCareer = adapter.data[position] as String
// todo 回传选择的职业 // 回传选择的职业
ToastUtil.showToast(this, "选择的职业:$secondCareer") val event = XBaseEvent(XEventConfig.CHOOSE_CAREER, secondCareer)
XEventService.postEvent(event)
} }
} }
......
...@@ -27,136 +27,133 @@ import com.yidian.xpage.XPageManager ...@@ -27,136 +27,133 @@ import com.yidian.xpage.XPageManager
* description: 商户管理中心 * description: 商户管理中心
*/ */
class MerchantCenterActivity : BaseActivity<ActivityMerchantCenterBinding>(), class MerchantCenterActivity : BaseActivity<ActivityMerchantCenterBinding>(),
IGetConfigListCallback, IGetLifeAccountListCallback, View.OnClickListener, IGetConfigListCallback, IGetLifeAccountListCallback, View.OnClickListener,
MerchantSwitchDialog.OnMerchantSwitchCallback, LifeAccountLabelView.OnLifeAccountLabelCallback, MerchantSwitchDialog.OnMerchantSwitchCallback, LifeAccountLabelView.OnLifeAccountLabelCallback,
IGetLifeAccountInfoByIdCallback { IGetLifeAccountInfoByIdCallback {
companion object {
// 传递的生活号信息
const val EXTRA_LIFE_ACCOUNT_INFO = "lifeAccountInfo"
companion object { // 是否有多个生活号
// 传递的生活号信息 const val EXTRA_IS_MULTI = "isMulti"
const val EXTRA_LIFE_ACCOUNT_INFO = "lifeAccountInfo"
// 是否有多个生活号 const val PARAMS_LIFE_ACCOUNT_ID = "life_account_id"
const val EXTRA_IS_MULTI = "isMulti" }
const val PARAMS_LIFE_ACCOUNT_ID = "life_account_id" /**
} * 当前生活号
*/
/** private lateinit var curLifeAccount: LifeAccountItemBean.Response
* 当前生活号
*/
private lateinit var curLifeAccount: LifeAccountItemBean.Response
override fun createViewBinding(): ActivityMerchantCenterBinding {
return ActivityMerchantCenterBinding.inflate(layoutInflater)
}
override fun getXPageName(): String {
return XRouterPathConstants.MERCHANT_CENTER
}
override fun init(savedInstanceState: Bundle?) {
super.init(savedInstanceState)
initView()
initListener()
initData()
}
private fun initView() {
viewBind.viewCommonHeader.tvTitle.text = resources.getString(R.string.management_center)
viewBind.viewCommonHeader.ivBack.isVisible = false
// 本期需求无资产功能 仅做UI展示
viewBind.avMerchantAsset.setMerchantAssetData("8856.88", "675.00")
}
private fun initListener() {
viewBind.tvSwitch.setOnClickListener(this)
viewBind.lvLifeAccountLabel.setOnLifeAccountLabelCallback(this)
}
private fun initData() {
val params = intent.getSerializableExtra(XRouterPathConstants.ParamsKey)?.let {
it as HashMap<*, *>
}
// 切换主体入口判断
viewBind.tvSwitch.isVisible = params?.get(EXTRA_IS_MULTI)?.let { it as Boolean } ?: false
curLifeAccount = params?.get(EXTRA_LIFE_ACCOUNT_INFO)?.let { it as LifeAccountItemBean.Response } ?: return
// 设置当前生活号信息
viewBind.lvLifeAccountLabel.setLifeAccountData(curLifeAccount)
// 请求功能入口配置清单
ApiService.getConfigList(this)
// 判断是否提示升级企业认证或提示认证驳回
if (curLifeAccount.life_account_type == Constant.TYPE_LIFE_ACCOUNT_PERSONAL) {
// 当前是个人生活号 提示升级
MerchantCenterBottomHintDialog(
this,
MerchantCenterBottomHintDialog.TYPE_AUTH_UPGRADE
).show()
}
if (curLifeAccount.enterprise_audit_status == Constant.STATUS_AUDIT_REJECT) {
// 当前企业认证驳回 提示修改
MerchantCenterBottomHintDialog(
this,
MerchantCenterBottomHintDialog.TYPE_AUTH_REJECT
).show()
}
}
override fun getConfigListSuccess(result: GetConfigListBean.Response?) {
viewBind.rvServiceGroup.layoutManager =
LinearLayoutManager(this)
viewBind.rvServiceGroup.addItemDecoration(MerchantServiceGroupAdapter.MerchantServiceGroupItemDecorator())
viewBind.rvServiceGroup.adapter = MerchantServiceGroupAdapter(
this,
result?.merchant_manager_center?.items
)
}
override fun getConfigListFailure(message: String?) { override fun createViewBinding(): ActivityMerchantCenterBinding {
return ActivityMerchantCenterBinding.inflate(layoutInflater)
}
override fun getXPageName(): String {
return XRouterPathConstants.MERCHANT_CENTER
}
override fun init(savedInstanceState: Bundle?) {
super.init(savedInstanceState)
initView()
initListener()
initData()
}
private fun initView() {
viewBind.viewCommonHeader.tvTitle.text = resources.getString(R.string.management_center)
viewBind.viewCommonHeader.ivBack.isVisible = false
// 本期需求无资产功能 仅做UI展示
viewBind.avMerchantAsset.setMerchantAssetData("8856.88", "675.00")
viewBind.avMerchantAsset.setOnClickListener {
XPageManager.push(XRouterPathConstants.CHOOSE_CAREER, null)
}
}
private fun initListener() {
viewBind.tvSwitch.setOnClickListener(this)
viewBind.lvLifeAccountLabel.setOnLifeAccountLabelCallback(this)
}
private fun initData() {
val params = intent.getSerializableExtra(XRouterPathConstants.ParamsKey)?.let {
it as HashMap<*, *>
}
// 切换主体入口判断
viewBind.tvSwitch.isVisible = params?.get(EXTRA_IS_MULTI)?.let { it as Boolean } ?: false
curLifeAccount = params?.get(EXTRA_LIFE_ACCOUNT_INFO)?.let { it as LifeAccountItemBean.Response } ?: return
// 设置当前生活号信息
viewBind.lvLifeAccountLabel.setLifeAccountData(curLifeAccount)
// 请求功能入口配置清单
ApiService.getConfigList(this)
// 判断是否提示升级企业认证或提示认证驳回
if (curLifeAccount.life_account_type == Constant.TYPE_LIFE_ACCOUNT_PERSONAL) {
// 当前是个人生活号 提示升级
MerchantCenterBottomHintDialog(
this,
MerchantCenterBottomHintDialog.TYPE_AUTH_UPGRADE
).show()
}
if (curLifeAccount.enterprise_audit_status == Constant.STATUS_AUDIT_REJECT) {
// 当前企业认证驳回 提示修改
MerchantCenterBottomHintDialog(
this,
MerchantCenterBottomHintDialog.TYPE_AUTH_REJECT
).show()
}
}
override fun getConfigListSuccess(result: GetConfigListBean.Response?) {
viewBind.rvServiceGroup.layoutManager = LinearLayoutManager(this)
viewBind.rvServiceGroup.addItemDecoration(MerchantServiceGroupAdapter.MerchantServiceGroupItemDecorator())
viewBind.rvServiceGroup.adapter = MerchantServiceGroupAdapter(this, result?.merchant_manager_center?.items)
}
override fun getConfigListFailure(message: String?) {
}
override fun getLifeAccountListSuccess(result: ArrayList<LifeAccountItemBean.Response>?) {
// 生活号列表请求成功 弹出切换主体弹窗
result?.let { MerchantSwitchDialog(this, curLifeAccount.life_account_id, it, this).show() }
}
override fun getLifeAccountListFailure(message: String?) {
}
override fun onClick(v: View?) {
if (v?.id == R.id.tv_switch) {
// 切换主体 请求生活号列表接口
ApiService.getLifeAccountList(this)
}
}
} override fun onLifeAccountSelect(data: LifeAccountItemBean.Response) {
// 用户切换主体 更新当前生活号信息
override fun getLifeAccountListSuccess(result: ArrayList<LifeAccountItemBean.Response>?) { curLifeAccount = data
// 生活号列表请求成功 弹出切换主体弹窗 viewBind.lvLifeAccountLabel.setLifeAccountData(data)
result?.let { MerchantSwitchDialog(this, curLifeAccount.life_account_id, it, this).show() } }
}
override fun onEnterLifeAccountInfo(lifeAccountId: String) {
override fun getLifeAccountListFailure(message: String?) { // 请求生活号详情接口
ApiService.getLifeAccountInfoById(this, hashMapOf(Pair(PARAMS_LIFE_ACCOUNT_ID, lifeAccountId)))
} }
override fun onClick(v: View?) { override fun getLifeAccountInfoByIdSuccess(result: GetLifeAccountInfoByIdBean.Response?) {
if (v?.id == R.id.tv_switch) { // 跳转生活号基本信息
// 切换主体 请求生活号列表接口 XPageManager.push(
ApiService.getLifeAccountList(this) XRouterPathConstants.MERCHANT_INFO,
} hashMapOf(Pair(MerchantInfoActivity.EXTRA_LIFE_ACCOUNT_INFO, result))
} )
}
override fun onLifeAccountSelect(data: LifeAccountItemBean.Response) {
// 用户切换主体 更新当前生活号信息 override fun getLifeAccountInfoByIdFailure(message: String?) {
curLifeAccount = data
viewBind.lvLifeAccountLabel.setLifeAccountData(data) }
}
override fun onEnterLifeAccountInfo(lifeAccountId: String) {
// 请求生活号详情接口
ApiService.getLifeAccountInfoById(
this,
hashMapOf(Pair(PARAMS_LIFE_ACCOUNT_ID, lifeAccountId))
)
}
override fun getLifeAccountInfoByIdSuccess(result: GetLifeAccountInfoByIdBean.Response?) {
// 跳转生活号基本信息
XPageManager.push(
XRouterPathConstants.MERCHANT_INFO,
hashMapOf(Pair(MerchantInfoActivity.EXTRA_LIFE_ACCOUNT_INFO, result))
)
}
override fun getLifeAccountInfoByIdFailure(message: String?) {
}
} }
package com.yidian.shenghuoquan.newscontent.utils
import android.content.Context
import android.content.res.AssetManager
import java.io.BufferedReader
import java.io.IOException
import java.io.InputStreamReader
/**
* JSON解析工具类
*/
object JsonUtils {
//从文件中读取内容转成json字符串
fun file2JsonStr(context: Context, fileName: String): String? {
val stringBuilder = StringBuilder()
try {
val assetManager: AssetManager = context.assets
val isr = InputStreamReader(assetManager.open(fileName))
val bf = BufferedReader(isr)
var line: String?
while (bf.readLine().also { line = it } != null) {
stringBuilder.append(line)
}
bf.close()
isr.close()
return stringBuilder.toString()
} catch (e: IOException) {
e.printStackTrace()
}
return null
}
}
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