首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在安卓系统中点击ListView Kotlin

在安卓系统中点击ListView Kotlin
EN

Stack Overflow用户
提问于 2018-06-30 23:10:28
回答 1查看 64关注 0票数 1

我在Kotlin中做了一个'listView‘,它显示了一个名字(questoes)和一个list的位置。我需要在点击第一个位置或第二个位置时转到另一个布局(位置0用于布局'activity_e_ex1_port‘,位置1用于布局'activity_e_ex2_port')。但是我在'if‘结构中的命令'onCreate’和'setContentView‘的函数'onCreate’中有一个bug。

代码语言:javascript
复制
    package com.example.asus.aprendecomigovelhinho

    import android.content.Context
    import android.content.Intent
    import android.support.v7.app.AppCompatActivity
    import android.os.Bundle
    import android.support.v4.content.ContextCompat.startActivity
    import android.support.v7.widget.LinearLayoutManager
    import android.view.LayoutInflater
    import android.view.View
    import android.view.ViewGroup
    import android.widget.BaseAdapter
    import android.widget.ListView
    import android.widget.TextView
    import kotlinx.android.synthetic.main.activity_d_lista.*

    class D_lista : AppCompatActivity() {

        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            setContentView(R.layout.activity_d_lista)

            val listView = findViewById<ListView>(R.id.listView_CaixaEntrada)

            listView.adapter=MyCustomAdpter(this)
        }


        private class MyCustomAdpter(context: Context): BaseAdapter(){

            private val mContext: Context

            private val questoes = arrayListOf<String>(
                    "Português 1º ano", "Português 2º ano")

            init {
                mContext = context
            }

            //indicará quantas linhas terá a lista
            override fun getCount(): Int {
                return questoes.size
            }

            override fun getItemId(position: Int): Long {
                return position.toLong()
            }

            override fun getItem(position: Int): Any {
                return "TEST STRING"
            }

            //para renderizar cada linha e depois a próxima
            override fun getView(position: Int, convertView: View?, viewGroup: ViewGroup?): View {
                val layoutInflater = LayoutInflater.from(mContext)
                val rowlista = layoutInflater.inflate(R.layout.activity_d_lista_row, viewGroup, false)

                val questaoTextView = rowlista.findViewById<TextView>(R.id.textViewQuestão)
                questaoTextView.text = questoes.get(position )

                val ordem = position+1
                val positionTextView = rowlista.findViewById<TextView>                        (R.id.textViewPosicao)
                positionTextView.text = "Ordem de chegada: $ordem"

                return rowlista
            }

            fun onCreate(position: Int, savedInstanceState: Bundle?){
                if(position==0) {
                    super.onCreate(savedInstanceState)
                    setContentView(R.layout.activity_e_ex1_port)
                }

                if(position==1) {
                    super.onCreate(savedInstanceState)
                    setContentView(R.layout.activity_e_ex2_port)
                }

            }

        }
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-01 02:04:18

你可以使用RecyclerView,你可以重写getItemViewType(),在不同的位置使用不同的布局。有关创建RecyclerView,请参阅this;有关getItemViewType(),请参阅this

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51116110

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档