iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 28
0
Software Development

Kotlin with android studio 開發30天不間斷系列 第 28

# Kotlin android 30天開發不間斷 day 28.Android 補充篇-GridView

這連續三天的補充篇 我想合起來做一個簡單的APP 做一個相簿的APP實作

今天我們先來寫GridView 之前沒寫是因為搞不懂 現在寫了是覺得很麻煩 Kotlin 有些東西不像JAVA一樣可以直接取用(adapter)所以花了很大的看了影片之後 從新實作
https://www.youtube.com/watch?v=bmHFiLWH4yk

我們先做好介面的設計 就直接放一個GridView

每一個格子內的東西都重新設計過 所以在做一個XML放入我們自己設計的樣子 裡面有圖片與文字

然後增加兩個class (customerlayout.kt/custom_adapter.kt)

首先實作customerlayout.kt

因為我們沒有要對圖片或文字做動作 這部分就可以先省下來 只定義好兩個參數

先放上程式碼以免講不完
package com.example.likunlin.album

import android.app.Activity
import android.content.Context
import android.support.v7.widget.RecyclerView
import android.view.View
import android.view.ViewGroup
import android.widget.ArrayAdapter
import android.widget.ImageView
import android.widget.TextView
import java.security.AccessControlContext

class custom_adapter(private val getContext:Context,private val CustomLayoutId:Int,private val custom_item:ArrayList):ArrayAdapter(getContext,CustomLayoutId,custom_item) {
override fun getView(position: Int, convertView: View?, parent: ViewGroup?): View {

    var row = convertView

    val Holder : ViewHolder

    if(row == null) {

        val inflater = (getContext as Activity).layoutInflater

        row = inflater!!.inflate(CustomLayoutId, parent, false)

        Holder = ViewHolder()

        Holder.img = row!!.findViewById(R.id.img) as ImageView

        Holder.txt = row!!.findViewById(R.id.txt) as TextView

        row.setTag(Holder)
    }else{
        Holder = row.getTag() as ViewHolder
    }

    val item = custom_item[position]

    Holder.img!!.setImageResource(item.image)
    Holder.txt!!.setText(item.text)

    return row
}
class ViewHolder{

    internal var img : ImageView? = null
    internal var txt : TextView? = null
}

}

之後在主程序上完成實作

我看android JAVA版的可以直接用adapter就可以完成一個簡易版adapter 若想客製化就在自己來即可 沒想到Kotlin 好像就只能客製化 我想明天會更麻煩 除了讀取本機程序之外 還會面對到圖檔太大的問題 這可真是一大挑戰


上一篇
# Kotlin android 30天開發不間斷 day 27.Android 補充篇-json的拆解
下一篇
Kotlin android 30天開發不間斷 day 29.Android 補充篇-相片讀取
系列文
Kotlin with android studio 開發30天不間斷30

尚未有邦友留言

立即登入留言