質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Kotlin

Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。

Q&A

解決済

1回答

1132閲覧

android studioで、ボタンをクリックしてeditTextに入力した文字列をtextViewに表示するコードについて

noko123

総合スコア28

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Kotlin

Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。

0グッド

1クリップ

投稿2020/07/04 08:06

編集2020/07/04 08:39

前提・実現したいこと

基礎的な本を一冊終えて、二冊目に取り組んでいます。まず本を見ずに自分で書いたコードがコメントアウトしている箇所です。お聞きしたいのは、自分はViewのIdであるbuttonを直接使っていますが、val btClickと宣言して使うことと何か違いはありますか?より安全である等。
また、このコードを書いていて、可読性を重視して省略せずに書いているんだろうな、と感じた一方で、findViewById()が多く回りくどくも感じました。しかし、このように変数宣言やクラスのインスタンス化をちゃんと書いて処理する方が正統なやり方ですか?また、慣れていた方が良いですか?

よろしくお願いします。

該当のソースコード

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

// button.setOnClickListener { textView.setText(editText.text) }

val btClick=findViewById<Button>(R.id.button) val listener=HelloListener() btClick.setOnClickListener(listener) } private inner class HelloListener: View.OnClickListener{ override fun onClick(v: View?) { val input=findViewById<EditText>(R.id.editText) val output=findViewById<TextView>(R.id.textView) val inputStr=input.text.toString() output.text=inputStr } }

}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

findViewById と Kotlin の synthetic import のどちらを使うべきか? という質問ですね。
現在の Android Studio では標準で synthetic import が使えるので、積極的に使えばいいと思います。

注意事項としては、import kotlinx.android.synthetic.main.activity_main.*activity_main の部分を適切に指定する必要があることと、Adapter や ViewHolder で使う場合は注意が必要 (そもそも使えるのか?) ってことでしょう。

投稿2020/07/04 11:35

hoshi-takanori

総合スコア7893

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

noko123

2020/07/05 09:54

回答ありがとうございます。 現在のandroid studioではkotlin-android-extensionsプラグインがデフォルトで入っているので、以前はこういう書き方が必要だったけれど、今は必要ないということなんですね。知識として知っておけばいいという感じでしょうか。ということは全編に渡ってfindViewByIdを使用しているこの本は、内容的に少々古いのでしょうか?
hoshi-takanori

2020/07/05 10:02

どの本か分からないので何とも言えませんが、初心者向けに何が起きてるかをきっちり説明したいということで findViewById をあえて書いてる可能性もあります。大事なのは、本の通りにそのまま打ち込むことではなく、一行一行の意味をきちんと理解して、省略できるものは省略したり、微妙に値や順番を変えて動作を確認して、自分の納得がいくコードが書けるようになることです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問