创建科特林定制微调适配器

问题描述 投票:-1回答:1

我是新来的科特林和我想要做Android的逻辑是使一个微调与自定义适配器与像下面the result i want文字来显示图像,但我得到的alots悬而未决的参考,所以我觉得我非常做某事错误

我有两个片段微调是第二个片段custome_spinner.xml里面是自定义布局文件

安卓3.1.2工作室

kotlin_version = '1.2.30'

gradle这个:3.1.2

 customeSpinnerAdapter.kt
import android.content.Context
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.BaseAdapter

class customeSpinnerAdapter : BaseAdapter{
    override fun getItem(p0: Int): Any {
        return flag.length
    }

    override fun getItemId(p0: Int): Long {
        return null
    }

    override fun getCount(): Int {
        return 0
    }

    val country:String
    val flag:String
     fun customeSpinnerAdapter(context:Context,name:String,image:String){
        this.country = name
        this.flag = image

        val inflater  = LayoutInflater.from(context)
    }
    override fun getView(p0: Int, p1: View?, p2: ViewGroup?): View {
        val view = inflater.inflate(R.layout.custome_spinner)
        spinner_image.setImageResource(flag)
        spinner_country.setText(country)
        return view
    }
}
custome_spinner.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">

    <ImageView
        android:id="@+id/spinner_image"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:padding="5dp"
        android:src="@drawable/us" />

    <TextView
        android:id="@+id/spinner_country"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:paddingLeft="10dp"
        android:paddingRight="10dp"
        android:layout_gravity="center"
        android:text="Custom Text"
        android:textColor="#000" />

</LinearLayout>
 the widget inside fragment_second.xml 

        <Spinner
            android:id="@+id/spinner"
            android:layout_width="368dp"
            android:layout_height="wrap_content"
            android:layout_marginEnd="8dp"
            android:layout_marginLeft="8dp"
            android:layout_marginRight="8dp"
            android:layout_marginStart="8dp"
            android:layout_marginTop="12dp"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintHorizontal_bias="0.0"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/from_textView" />

android-studio kotlin
1个回答
0
投票

你的问题就出在customeSpinnerAdapter.kt

  customeSpinnerAdapter.kt
import android.content.Context
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.BaseAdapter

class customeSpinnerAdapter : BaseAdapter{
    override fun getItem(p0: Int): Any {
        return flag.length
    }

    override fun getItemId(p0: Int): Long {
        return null
    }

    override fun getCount(): Int {
        return 0
    }

    val country:String
    val flag:String
    //Add this
    val inflater : LayoutInflater

    fun customeSpinnerAdapter(context:Context,name:String,image:String){
        this.country = name
        this.flag = image

        //val inflater  = LayoutInflater.from(context)
        inflater  = LayoutInflater.from(context)
    }
    override fun getView(p0: Int, p1: View?, p2: ViewGroup?): View {
        val view = inflater.inflate(R.layout.custome_spinner)
        spinner_image.setImageResource(flag)
        spinner_country.setText(country)
        return view
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.