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

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

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

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Android Studio

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

Kotlin

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

Q&A

解決済

1回答

9757閲覧

kotlinで【import kotlinx.android.synthetic.main.activity_main.*】が使えない

ryus

総合スコア2

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Android Studio

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

Kotlin

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

0グッド

0クリップ

投稿2021/04/20 07:09

importでkotlinx.android.synthetic.main.activity_main.*を入力すると
kotolinxが赤くなってエラーになってしまいます。
hitTextとloseTextもエラーになります

kotlin

1package com.example.highandlow 2 3import androidx.appcompat.app.AppCompatActivity 4import android.os.Bundle 5import android.util.Log 6import **kotlinx**.android.synthetic.main.activity_main.* 7 8class MainActivity : AppCompatActivity() { 9 private val tag= "high and low" 10 private var yourCard = 0 11 private var droidCard = 0 12 private var hitCount = 0 13 private var loseCount = 0 14 private var gameStart = false 15 private var answerd = false 16 17 18 override fun onCreate(savedInstanceState: Bundle?) { 19 super.onCreate(savedInstanceState) 20 setContentView(R.layout.activity_main) 21 } 22 23 override fun onResume() { 24 super.onResume() 25 hitCount = 0 26 loseCount = 0 27 **hitText**.text = getString(R.string.hit_text) 28 **loseText**.text = getString(R.string.lose_text) 29 gameStart = true 30 drawCard() 31 }

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

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

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

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

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

guest

回答1

0

ベストアンサー

それは synthetic import という機能でしたが、残念ながら最近廃止になってしまいました。
代わりに findViewById または view binding をお使いください。
参考: Kotlin Android Extensions syntheticsのdeprecatedに伴う対応 - Qiita
参考: https://teratail.com/questions/330555#reply-456902


findViewById の場合

diff

1+ val hitText = findViewById<TextView>(R.id.hitText) 2 hitText.text = getString(R.string.hit_text) 3 4+ val loseText = findViewById<TextView>(R.id.loseText) 5 loseText.text = getString(R.string.lose_text)

view binding の場合

app/build.gradle の android { 〜 } に viewBinding を追加

diff

1 android { 2 // 略 3 4+ viewBinding { 5+ enabled = true 6+ } 7 }

MainActivity.kt を修正

diff

1-import **kotlinx**.android.synthetic.main.activity_main.* 2+import com.example.highandlow.databinding.ActivityMainBinding 3 4 class MainActivity : AppCompatActivity() { 5+ private lateinit var binding: ActivityMainBinding 6 7 // 略 8 9 override fun onCreate(savedInstanceState: Bundle?) { 10 super.onCreate(savedInstanceState) 11- setContentView(R.layout.activity_main) 12+ binding = ActivityMainBinding.inflate(layoutInflater) 13+ setContentView(binding.root) 14 } 15 16 override fun onResume() { 17 // 略 18 19- **hitText**.text = getString(R.string.hit_text) 20- **loseText**.text = getString(R.string.lose_text) 21+ binding.hitText.text = getString(R.string.hit_text) 22+ binding.loseText.text = getString(R.string.lose_text) 23

投稿2021/04/20 09:19

編集2021/04/20 09:40
hoshi-takanori

総合スコア7901

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問