0
点赞
收藏
分享

微信扫一扫

Koltin35,头条android面试算法

苦茶如歌 2022-02-15 阅读 46

fun getBusinessInfo() {

val businessCall = takeoutService.getBusinessInfo()

businessCall.enqueue(callback)

}

override fun parserJson(json: String) {

val gson = Gson()

val jsoObj = JSONObject(json)

val allStr = jsoObj.getString(“list”)

//商品类型的集合

goodstypeList = gson.fromJson(allStr, object : TypeToken<List>() {

}.type)

Log.e(“business”, “该商家一共有” + goodstypeList.size + “个类别商品”)

goodsFragment.onLoadBusinessSuccess(goodstypeList)

}

}

GoodsTypeInfo.kt商品的bean

package com.example.takeout.model.beans

class GoodsTypeInfo {

var id: Int = 0//商品类型id

var name: String = “”//商品类型名称

var info: String = “”//特价信息

var list: List = listOf()//商品列表

constructor() : super() {}

constructor(id: Int, name: String, info: String, list: List) : super() {

this.id = id

this.name = name

this.info = info

this.list = list

}

override fun toString(): String {

return “GoodsTypeInfo [id= i d , n a m e = id, name= id,name=name, info= i n f o , l i s t = info, list= info,list=list]”

}

var redDotCount: Int = 0

}

GoodsTypeRvAdapter.kt商品左侧主界面的RecycleView,其中使用FragmentActivity?来作为androidx下面的Context

package com.example.takeout.ui.adapter

import android.view.LayoutInflater

import android.view.View

import android.view.ViewGroup

import android.widget.TextView

import androidx.fragment.app.FragmentActivity

import androidx.recyclerview.widget.RecyclerView

import com.example.takeout.R

import com.example.takeout.model.beans.GoodsTypeInfo

import com.example.takeout.ui.fragment.GoodsFragment

import org.jetbrains.anko.find

class GoodsTypeRvAdapter(val context: FragmentActivity?, val goodsFragment: GoodsFragment) :

RecyclerView.Adapter<RecyclerView.ViewHolder>() {

var goodsTypeList: List = listOf()

fun setDatas(list: List) {

this.goodsTypeList = list

notifyDataSetChanged()

}

override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder {

val itemView = LayoutInflater.from(context).inflate(R.layout.item_type, parent, false)

return GoodsTypeItemHolder(itemView)

}

override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {

val goodsTypeItemHolder = holder as GoodsTypeItemHolder

goodsTypeItemHolder.bindData(goodsTypeList.get(position), position)

}

override fun getItemCount(): Int {

return goodsTypeList.size

}

inner class GoodsTypeItemHolder(val item: View) : RecyclerView.ViewHolder(item) {

val tvType: TextView

init {

tvType = item.find(R.id.type)

}

fun bindData(goodsTypeInfo: GoodsTypeInfo, position: Int) {

tvType.text = goodsTypeInfo.name

}

}

}

TakeoutService.kt服务端的请求格式

package com.example.takeout.model.net

import retrofit2.Call

import retrofit2.http.GET

import rx.Observable

interface TakeoutService {

//ex. @GET(“users/{user}/repos”)

//ex. fun listRepos(@Path(“user”) user: String): Call<List>

//http://127.0.0.1:8090/takeout?index=0

@GET(“takeout?index=0”)

fun getHomeInfo(): Call

//http://127.0.0.1:8090/takelogin?index=0

@GET(“takelogin?index=0”)

fun loginByPhone(): Call

//http://127.0.0.1:8090/takeorder?index=0

@GET(“takeorder?index=0”)

fun getOrderList(): Call

//使用Rxjava组合的接口

//http://127.0.0.1:8090/takeorder?index=0

@GET(“takeorder?index=0”)

fun getOrderListByRxjava(): Observable

@GET(“takebusiness?index=0”)

fun getBusinessInfo(): Call

}

item_type.xml布局文件

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android=“http://schemas.android.com/apk/res/android”

android:layout_width=“match_parent”

android:clickable=“true”

android:layout_height=“wrap_content”

最后

都说三年是程序员的一个坎,能否晋升或者提高自己的核心竞争力,这几年就十分关键。

技术发展的这么快,从哪些方面开始学习,才能达到高级工程师水平,最后进阶到Android架构师/技术专家?我总结了这 5大块;

《Android架构视频+BAT面试专题PDF+学习笔记​》

网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望**这份系统化的技术体系**对大家有一个方向参考。

F-1644918297184)]

网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望**这份系统化的技术体系**对大家有一个方向参考。

举报

相关推荐

0 条评论