Android プログラミングを始めました。
開発環境としては、最も標準的な Android Studio と Kotlin を使うことにしました。
Android Studio のインストールや使い方の説明を始めるとスクリーンショット だらけになりますので、そこは、他のサイトを参照してください。
このコーナーでは、メインの Kotlin ファイルと、文字列のための XML ファイルの掲載が 中心になるのではないかと思います。よろしくお願いいたします。
ここからは、Java SDK と Kotlin と Android Studio がインストールされていて、 新規プロジェクトが作成でき、View パーツの簡単なレイアウトができるところから はじめます。
スピナーをタップすると、プルダウンメニューが現れ、選択した項目がテキストビューに 表示されます。 プロジェクトのテンプレートは Empty Activity です。
package com.example.sense4
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.View
import android.widget.AdapterView
import android.widget.ArrayAdapter
import android.widget.Spinner
import android.widget.TextView
class MainActivity : AppCompatActivity() {
private val platforms by lazy { arrayOf ("Android", "iOS", "Windows", "macOS", "Linux")}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val textview: TextView = findViewById(R.id.textview)
val spinner: Spinner = findViewById(R.id.spinner)
val adapter = ArrayAdapter(applicationContext,
android.R.layout.simple_spinner_item, platforms)
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)
spinner.adapter = adapter
spinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
override fun onItemSelected(parent: AdapterView<*>?,
view: View?, position: Int, id: Long) {
val spinnerParent = parent as Spinner
val item = spinnerParent.selectedItem as String
textview.text = item
}
override fun onNothingSelected(parent: AdapterView<*>?) = Unit
}
}
}
<resources>
<string name="app_name">Spinner</string>
<string name="textview">Android</string>
</resources>
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.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"
tools:context=".MainActivity">
<TextView
android:id="@+id/textview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="32dp"
android:text="@string/textview"
android:textSize="20sp"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<Spinner
android:id="@+id/spinner"
android:layout_width="409dp"
android:layout_height="wrap_content"
android:layout_marginTop="32dp"
android:minHeight="48dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textview"
tools:ignore="SpeakableTextPresentCheck" />
</androidx.constraintlayout.widget.ConstraintLayout>
Android 11