一番簡単なlistview

どこのコードも肝心な部分が抜けてたり古くて動かなかったりしたので私の貴重な二日間を使って得たコードをここに記す。英単語アプリを作ろうとしている。

#ファイル階層

![ffff.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/369642/062c7c98-d828-fdd3-91b8-73b4a5be7542.png)

どうして書いてくれないんだ。
MainActivityにkotlinかjavaの好きな方を置けばおｋ。

#MainActivity.kt

```kotlin

package com.example.englishplactice

import android.os.Bundle
import android.view.View
import android.widget.AdapterView
import android.widget.ArrayAdapter
import android.widget.ListView
import androidx.appcompat.app.AppCompatActivity
import android.widget.Toast.*

class MainActivity : AppCompatActivity() {
    internal lateinit var LV: ListView
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        LV = findViewById<View>(R.id.lv) as ListView
        val arrayAdapter = ArrayAdapter(this, android.R.layout.simple_list_item_1, foods)
        LV.adapter = arrayAdapter
    }

    companion object {
        private val foods = arrayOf("リンゴ", "あ", "i", "う")
    }
}

```

#MainActivity.java

```java
package com.example.englishplactice;

import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {
    ListView LV;
    private static final String[] foods={
            "リンゴ","あ","i","う"
    };
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        LV=(ListView) findViewById(R.id.lv);
        ArrayAdapter<String> arrayAdapter =
                new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, foods);
        LV.setAdapter(arrayAdapter);
    }
}
```
一行目のcom.example.englishplacticeだけ読み替えるように。

ListViewであるLVを定義し、LV=(ListView) findViewById(R.id.lv);でactivity_main内のListView内で定義したandroid:id="@+id/lv"と関連付けているらしい。またLV、lvは等しくなるように自由に決めてよい。

simple_list_item_1はdefaultで用意されているレイアウトファイルでこれを使わないとファイルが増えてややこしくなる(複雑な設定をするときにいるのかな？)、私はただ他のページに繋げられれば良いのでこれで十分だろう。

#activity_main.xml

```xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".MainActivity">


    <ListView
            android:id="@+id/lv"
            android:layout_width="0dp"
            android:layout_height="0dp"
            android:layout_marginTop="8dp" android:layout_marginBottom="8dp" app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintTop_toTopOf="parent" app:layout_constraintStart_toStartOf="parent"
            android:layout_marginLeft="8dp" app:layout_constraintBottom_toBottomOf="parent"
            android:layout_marginStart="8dp" android:layout_marginEnd="8dp" android:layout_marginRight="8dp"/>
</androidx.constraintlayout.widget.ConstraintLayout>
```

これをコピペすればおｋ、パパっとやって終りっ！
![lv.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/369642/0b1cc58e-6bc9-aead-d060-777f4113306c.png)