0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

[Kotlin]Android StudioでToDoアプリを作るまで

Last updated at Posted at 2021-02-14

はじめに、作り方を解説するものではなく調べた軌跡を残したもの

AndroidStudioでアプリ開発をしてみたいと思います。

しかし未経験なので何か簡単なものから始めたいです。

ということでToDoアプリなら簡単に作れるのでは?という思いからToDoアプリの構造として欠かせないリストを作る方法を調べていきます。

リストには昔はListViewを使っていたみたい、だけどRecyclerViewのほうがよさそう

AndroidStudioにはListViewとRecyclerViewがあるのですが

RecyclerViewはListViewの代替ではないよねという話

らしく

RecyclerViewはListViewでは解決出来ない or より自由にカスタマイズしたい場合に使う

「え!?結果どっち使えばわからねえ」

となったので、これはどっちも作ってみるかあと

簡単そうなListViewから作ろうと思う

作りたいものは共通させてどちらがふさわしいか決める

・リスト表示
・リストの要素を追加
・リストの要素を編集
 Ⅼリストの要素を削除

最低限これがあれば、ToDoとしての役目を果たすのでこれを目標に作ります。

ListViewの使い方

KotlinでAndroidアプリのlistviewを実装する方法を現役エンジニアが解説【初心者向け】

これコピッた

AndroidStudioでEmptyで作成して、最初にactivity_main.xmlを作りました

最初にあるTextViewは削除してListViewを追加しました。

ListViewはLegacyってとこにあるのでそれをDDしてidが未設定なのでListViewと名付けます。

レイアウト系の設定は丸こぴしました。

MainActivityをつくっていきます。

これもほぼまるこぴです。

最後のListView.adapter = adapterでエラー発生

.adapterのところが赤字になっている

おそらくこれじゃ実行できないと思いつつ実行

案の定実行できませんでした

エラーメッセージは
Unresolved reference: adapter

調べるとこの名前は定義されていないから駄目だよと言われているらしい

確かにlistViewの定義がされていないので

MainActivity.kt
class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        var listView = findViewById<ListView>(R.id.listView)

        val data = arrayOf("あり", "いもむし", "だんごむし", "てんとうむし")

        val adapter = ArrayAdapter(
                this,
                android.R.layout.simple_list_item_1,
                data
        )

        listView.adapter = adapter
    }
}

最初の行にfindViewByIdをつけてあげる

エラーがなくなり実行できました。

listview_1.png

リスト表示はできますが、クリックしたときの処理などをしていないのでタッチしてもなにも起きません。

参照サイトにクリックしたときの処理があったので試しに書いてみます。

これを核とタッチした要素がトーストされるらしい。

トーストってなんだ?

実行した結果は要素をタッチしたら画面下にそのテキストが表示される感じ、トーストってこんなことができると記憶しておく

listview_2.png

リストの表示はできた、あとは追加と編集(削除)ができれば文句ない

でも要素をタッチして編集はいいけど追加などはほかにプラスボタンとかがあると便利である。

具体的な内容を定義しよう
・追加ボタンを作成
・要素をタッチすると編集できる、要素を左にスライドさせるとその要素を削除する

これは勘だけどスライドしたら要素を削除はListViewでできない気がする。

編集はトーストの要領でその命令を変更すればいいだけだと思う

追加はボタンを作成して、それを押したら配列に対して追加するように命令を出せばいいと思う。

ここで詰まる

setOnItemClickListenerで配列をいじれないかもしれない問題、というかいじり方がわからない問題が発生中

元のコードではタッチされた要素に対する処理だから元の配列については関与していないためだと思われる。

とはいえよくわからないので、ネットサーフィンしてきます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?