string-array
res/values/strings.xml
<resources>
<string name="app_name">myapp</string>
<string-array name="lv_menu">
<item>menuA</item>
<item>menuB</item>
<item>menuC</item>
</string-array>
</resources>
res/layout/activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<ListView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/lvMenu"
android:entries="@array/lv_menu" />
kotlin+java/com.example.app2/MainActivity.kt
import ...
class MainActivity : AppCompatActivity() [
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
enableEdgeToEdge()
setContentView(R.layout.activity_main)
ViewCompat. ... { ... }
val lvMenu = findViewById<ListView>(R.id.lvMenu)
lvMenu.onItemClickListener = ListItemClickListener()
}
private inner class ListItemClickListener : AdapterView.OnItemClickListener {
override fun onItemClick(parent: AdapterView<*>, view: View, position: Int, id: Long) {
val item = parent.getItemAtPosition(position) as String
val show = "あなたの選んだメニューは $item"
Toast.makeText(this@MainActivity, show, Toast.LENGTH_LONG).show()
}
}
}
引数:型 | |
parent: AdapterView<*> | タップされたリスト全体 |
view: View | タップされた1行分の画面部品 |
position: Int | タップされた行番号 |
id: Long |
getItemAtPosition(行番号)は、リストデータのうちでその行番号に該当するデータを取得できます。
ただし、戻り値がAny型なので、as StringとしてString型にキャストします。
画面下部に文字列が表示され、自動的に消えていくギミックを「トースト」といいます。
Toast.makeText(context、表示文字列、トーストの表示時間)
表示時間はToast.LENGTH_LONGとToast.LENGTH_SHORTの2種類しかありません。
※context … トーストを表示させるActivityオブジェクト(場所)
BACK