Hướng dẫn này minh họa cách tạo GridView Layout trong ứng dụng Android sử dụng Kotlin.
Bước 1: Tạo dự án mới
Mở Android Studio, chọn File → New Project và điền đầy đủ thông tin cần thiết để tạo dự án mới.
Bước 2: Thiết kế giao diện (activity_main.xml)
Thêm mã sau vào file res/layout/activity_main.xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android"
xmlns:tools="https://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<GridView
android:id="@+id/gridView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:numColumns="2" />
</RelativeLayout>
Bước 3: Viết code MainActivity.kt
Thêm mã sau vào src/MainActivity.kt:
import android.os.Bundle
import android.widget.AdapterView.OnItemClickListener
import android.widget.GridView
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
class MainActivity : AppCompatActivity() {
lateinit var gridView: GridView
private val playerNames = arrayOf(
"Cristiano Ronaldo", "Joao Felix", "Bernado Silva",
"Andre Silve", "Bruno Fernandez", "William Carvalho",
"Nelson Semedo", "Pepe", "Rui Patricio"
)
private val playerImages = intArrayOf(
R.drawable.ronaldo, R.drawable.felix, R.drawable.bernado,
R.drawable.andre, R.drawable.bruno, R.drawable.carvalho,
R.drawable.semedo, R.drawable.pepe, R.drawable.patricio
)
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
title = "KotlinApp"
gridView = findViewById(R.id.gridView)
val mainAdapter = MainAdapter(this@MainActivity, playerNames, playerImages)
gridView.adapter = mainAdapter
gridView.onItemClickListener = OnItemClickListener { _, _, position, _ ->
Toast.makeText(applicationContext, "Bạn đã chọn " + playerNames[position], Toast.LENGTH_SHORT).show()
}
}
}
Bước 4: Tạo Adapter (MainAdapter.kt)
Tạo class Kotlin tên MainAdapter.kt và thêm mã sau:
import android.content.Context
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.BaseAdapter
import android.widget.ImageView
import android.widget.TextView
internal class MainAdapter(
private val context: Context,
private val numbersInWords: Array<String>,
private val numberImage: IntArray
) : BaseAdapter() {
private var layoutInflater: LayoutInflater? = null
private lateinit var imageView: ImageView
private lateinit var textView: TextView
override fun getCount(): Int = numbersInWords.size
override fun getItem(position: Int): Any? = null
override fun getItemId(position: Int): Long = 0
override fun getView(position: Int, convertView: View?, parent: ViewGroup): View? {
var convertView = convertView
if (layoutInflater == null) {
layoutInflater = context.getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater
}
if (convertView == null) {
convertView = layoutInflater!!.inflate(R.layout.rowitem, null)
}
imageView = convertView!!.findViewById(R.id.imageView)
textView = convertView.findViewById(R.id.textView)
imageView.setImageResource(numberImage[position])
textView.text = numbersInWords[position]
return convertView
}
}
Bước 5: Tạo layout item (row_item.xml)
Tạo file Layout Resource tên row_item.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="center"
android:padding="8dp">
<ImageView
android:id="@+id/imageView"
android:layout_width="100dp"
android:layout_height="100dp" />
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_marginBottom="10dp"
android:text="Numbers"
android:textAlignment="center"
android:gravity="center"
android:textColor="@android:color/background_dark"
android:textSize="24sp"
android:textStyle="bold" />
</LinearLayout>
Bước 6: Cấu hình AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
package="com.example.q11">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Chạy ứng dụng
Kết nối thiết bị Android thực với máy tính. Trong Android Studio, mở file activity và nhấn biểu tượng Run trên thanh công cụ. Chọn thiết bị di động của bạn và kiểm tra màn hình hiển thị GridView với danh sách cầu thủ.