Kotlin:编写Android适配器(Adapter)

说好今天要写一个使用Kotlin写Adapter的列子,我想了半天也没有组织好语言,直接上代码吧,有一定Android基础的小伙伴肯定是能看的懂的

package com.example.administrator.kotlintest

import android.content.Context
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.BaseAdapter
import android.widget.TextView

/**
 * Created by zhanglei on 2017/5/31.
 * ListView的适配器
 */
class MyAdapter(var mList: List<String>, var context: Context) : BaseAdapter() {

    override fun getView(position: Int, convertView: View?, parent: ViewGroup?): View {
        var holder: MyViewHolder
        //重用view
        var v: View
        if (convertView == null) {
            holder = MyViewHolder()
            v = LayoutInflater.from(context).inflate(R.layout.list_item_layout, parent, false)
            holder.textView = v.findViewById(R.id.list_text_item) as TextView
            //设置tag
            v.tag = holder
        } else {
            v = convertView
            //获取tag并强转
            holder = v.tag as MyViewHolder
        }

        //为TextView设置内容
        holder.textView.text = mList[position]
        return v
    }

    override fun getItem(position: Int): Any {
        return mList[position]
    }

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

    override fun getCount(): Int {
        return mList.size
    }

    class MyViewHolder {

        lateinit var textView: TextView

    }
}

先写成这样吧,有什么不懂的请在评论区留言,我能帮你解决的我会尽力的。

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,编写一个背单词的 Kotlin Android 应用程序的基本步骤如下: 1. 创建一个新的 Kotlin Android 项目,并在 app 的 build.gradle 文件中添加以下依赖项: ```groovy implementation "androidx.recyclerview:recyclerview:1.2.0" implementation "com.squareup.retrofit2:retrofit:2.9.0" implementation "com.squareup.retrofit2:converter-gson:2.9.0" implementation "com.squareup.okhttp3:logging-interceptor:4.9.0" implementation "com.google.android.material:material:1.3.0" ``` 2. 在 res/layout 目录中创建一个名为 activity_main.xml 的新布局文件,并在其中添加一个 RecyclerView 和一个 FloatingActionButton。 3. 创建一个新的 Kotlin 类,用于表示单词和其含义。例如: ```kotlin data class Word(val english: String, val chinese: String) ``` 4. 创建一个新的 Kotlin 类,用于实现 Retrofit 接口,从网络上获取单词列表。例如: ```kotlin interface WordService { @GET("words") fun getWords(): Call<List<Word>> } ``` 5. 创建一个新的 Kotlin 类,用于实现 RecyclerView 的适配器。例如: ```kotlin class WordAdapter(private val words: List<Word>) : RecyclerView.Adapter<WordAdapter.ViewHolder>() { override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder { val view = LayoutInflater.from(parent.context).inflate(R.layout.item_word, parent, false) return ViewHolder(view) } override fun onBindViewHolder(holder: ViewHolder, position: Int) { val word = words[position] holder.englishTextView.text = word.english holder.chineseTextView.text = word.chinese } override fun getItemCount() = words.size class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { val englishTextView: TextView = itemView.findViewById(R.id.englishTextView) val chineseTextView: TextView = itemView.findViewById(R.id.chineseTextView) } } ``` 6. 在 MainActivity 类中,通过 Retrofit 获取单词列表,并将其设置为 RecyclerView 的适配器。例如: ```kotlin class MainActivity : AppCompatActivity() { private lateinit var recyclerView: RecyclerView private lateinit var adapter: WordAdapter override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) recyclerView = findViewById(R.id.recyclerView) recyclerView.layoutManager = LinearLayoutManager(this) val retrofit = Retrofit.Builder() .baseUrl("https://api.example.com/") .addConverterFactory(GsonConverterFactory.create()) .client(OkHttpClient.Builder().addInterceptor(HttpLoggingInterceptor().apply { level = HttpLoggingInterceptor.Level.BODY }).build()) .build() val wordService = retrofit.create(WordService::class.java) wordService.getWords().enqueue(object : Callback<List<Word>> { override fun onResponse(call: Call<List<Word>>, response: Response<List<Word>>) { if (response.isSuccessful) { adapter = WordAdapter(response.body()!!) recyclerView.adapter = adapter } } override fun onFailure(call: Call<List<Word>>, t: Throwable) { Toast.makeText(this@MainActivity, t.message, Toast.LENGTH_SHORT).show() } }) } } ``` 7. 运行应用程序并测试。 这样,一个简单的背单词应用程序就完成了。当用户打开应用程序时,它将从您的 API 获取单词列表,并在 RecyclerView 中显示它们。用户可以滚动列表并单击 FloatingActionButton 添加单词。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值