自定义ListView

时间:2018-06-18 16:33:09

标签: android android-layout listview kotlin

我正在使用ListView:

我只想简单地编辑listview设计中的一些内容,如更改文本大小,居中等等。

我已经读过,因为我使用" SIMPLE_LIST_ITEM_1",我无法像我想的那样编辑它。

我做了一项研究,发现我需要创建自己想要使用的列表的布局。所以我做到了,并创建了一个名为listview.xml的布局,如下所示:

<android.support.constraint.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <RelativeLayout
        android:layout_width="367dp"
        android:layout_height="142dp"
        android:layout_marginBottom="8dp"
        android:layout_marginEnd="8dp"
        android:layout_marginStart="8dp"
        android:layout_marginTop="8dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.0">

        <TextView
            android:id="@+id/txtvlist1"
            android:layout_width="263dp"
            android:layout_height="108dp"
            android:layout_alignParentEnd="true"
            android:layout_centerVertical="true"
            android:layout_marginEnd="9dp"
            android:gravity="top|center" />

    </RelativeLayout>
</android.support.constraint.ConstraintLayout>

因此,一旦我定义了我想要使用的布局,我就用android.R.layout.simple_list_item_1代替android.R.layout.listview来尝试它,但正如我所料,它没有用。

我尝试创建一些我在教程中找到的其他自定义列表视图,但在测试过滤器时,它会关闭应用程序。

我需要的只是改变文本的大小并使其居中。

这是我的原始代码:

val animalsnames = arrayOf("cat","dog", "mouse", "parrot", "lion", "panda")
internal lateinit var animalsadapter: ArrayAdapter<String>

val list = findViewById(R.id.list1) as ListView
animalsadapter = ArrayAdapter(
    this@MainActivity,
    android.R.layout.simple_list_item_1,
    animalsnames)
list.adapter = animalsadapter

这是所选位置项的条件:

list.setOnItemClickListener { adapterView, view, i, l ->
    when (animalsnames.indexOfFirst { it == animalsadapter.getItem(i) }) {
        0 -> {
            webView.loadUrl("https://cat.com")
            telefono.text = "phonecat"
            webView2.loadUrl("http://cat2.com")
        }

        1 -> {
            webView.loadUrl("http://dog.com")
            telefono.text = "phonedog"
            webView2.loadUrl("https://dog2.com")
        }

        2 -> {
            webView.loadUrl("https://mouse.com")
            telefono.text = "mousephone"
            webView2.loadUrl("http://mouse2.com")
        }

这是我用作过滤器的编辑:

    var et_search = findViewById(R.id.e_buscar) as EditText

    et_search.addTextChangedListener(object : TextWatcher {
        override fun onTextChanged(s: CharSequence, start: Int, before: Int, count: Int) {
            animalsadapter.filter.filter(s)

        }
        override fun beforeTextChanged(s: CharSequence, start: Int, count: Int, after: Int) {

        }

        override fun afterTextChanged(s: Editable) {

        }
    })

1 个答案:

答案 0 :(得分:0)

android.R.*android包中R类的导入。将其替换为R.layout.listview.xml,或者替换为com.your.package.R.layout.listview.xml,具体取决于您的导入。