Kotlin 如何使用getItemViewType按标题和子项插入项目
如何在插入之前通过排序在recyclingeview中插入arraylist。就在示例下方Kotlin 如何使用getItemViewType按标题和子项插入项目,kotlin,retrofit,Kotlin,Retrofit,如何在插入之前通过排序在recyclingeview中插入arraylist。就在示例下方 [PRATO FEITO ] -> TITLE [ COM ACOMPANHAMENTO] -> SUB ITEM [ COM FEIJOADA ] -> SUB ITEM [ ] [ESPETINHO ] -> TITLE [ COM BIFÉ ] ->
[PRATO FEITO ] -> TITLE
[ COM ACOMPANHAMENTO] -> SUB ITEM
[ COM FEIJOADA ] -> SUB ITEM
[ ]
[ESPETINHO ] -> TITLE
[ COM BIFÉ ] -> SUB ITEM
[ COM ACOMPANHAMENTO] -> SUB ITEM
看看结果如何。它快坏了
[PRATO FEITO ] -> TITLE
[ESPETINHO ] -> TITLE
[ COM BIFÉ ] -> SUB ITEM
[ COM ACOMPANHAMENTO] -> SUB ITEM
[ COM FEIJOADA ] -> SUB ITEM
[ COM MANDIOCA ] -> SUB ITE
我的代码列表
class Lista_Itens_Mesa : AppCompatActivity() {
val client by lazy {
Api.create()
}
var disposable: Disposable? = null
private lateinit var recycleview: RecyclerView
private lateinit var viewadapter1: RecyclerView.Adapter<*>
private lateinit var viewManager: RecyclerView.LayoutManager
private lateinit var db: AppBancoDados
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.lista__itens__mesa_pratos) //lista__itens__mesa_pratos
val numbercolumns = 1
recyclerViewItens_Mesa.layoutManager = LinearLayoutManager(this)
recyclerViewItens_Mesa.addItemDecoration(DividerItemDecoration(this, OrientationHelper.HORIZONTAL))
BuscarTestando()
}
fun BuscarTestando(){
disposable = client.list_pratos(idmesas)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(
{ result ->
val array = ArrayList<Pr_atos>()
result[0].pratos.forEach {
array.add(Pr_atos(it?.dESCRICAOPRODUTO, null, it?.POST_TYPE))
}
result[1].complementos.forEach {
array.add(Pr_atos(null, it?.cOMPLEMENTODESCRICAO, it?.POST_TYPE))
}
viewadapter1 = Itens_Mesa_Adapter(array)
recyclerViewItens_Mesa.adapter = viewadapter1
},
{ error ->
println(" Erro não esperado! " + error.printStackTrace())
})
}
}
}以及pratos和complementos是如何相互绑定的?它们是作为JSON响应的
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder {
if(viewType == POST_TYPE_PRATOS){
val view_pratos = LayoutInflater.from(parent.context).inflate(R.layout.itens__mesa_pratos,parent,false)
return ViewHolderPratos(view_pratos)
}else(viewType == POST_TYPE_COMPLEMENTOS)
val view_complementos = LayoutInflater.from(parent.context).inflate(R.layout.itens_mesa_complemento,parent,false)
return ViewHolderComplementos(view_complementos)
}
override fun getItemCount(): Int {
return itens_mesa.size
}
override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
if(getItemViewType(position) == POST_TYPE_PRATOS){
(holder as ViewHolderPratos).bind(itens_mesa[position])
}else{
(holder as ViewHolderComplementos).bind(itens_mesa[position])
}
}
override fun getItemViewType(position: Int): Int {
return if(itens_mesa[position].post_type == 1){
POST_TYPE_PRATOS
}else{
POST_TYPE_COMPLEMENTOS
}
}
class ViewHolderPratos(itemView: View) : RecyclerView.ViewHolder(itemView){
fun bind(itens : Pr_atos){
itemView.TextViewPedidoName.text = itens.produtoname
}
}
class ViewHolderComplementos(itemView: View) : RecyclerView.ViewHolder(itemView){
fun bind(itens: Pr_atos){
itemView.textViewcomplemento_pedido.text = itens.complementoname
}
}