[解決済み] プロパティは初期化されているか、抽象的である必要があります
2022-06-17 23:05:27
質問
私はKotlinの初心者なのですが、解決策を見つけることができませんでした。
どのようにクラスフィールドを宣言するのですか?javaで持っているようなものです。
protected SharedPreferences mSharedPreferences;
そして、その後にある
onCreate()
:
mSharedPreferences = PreferenceManager.getDefaultSharedPreferences(this)
これで好きなところ(このベースとなるアクティビティのサブクラス内)で使えるようになりました。
Kotlinで同じことをやってみる。
protected var sharedPreferences : SharedPreferences
そして、その中に
onCreate()
:
sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this)
しかし、警告が表示されます: "プロパティは初期化されているか、抽象的でなければなりません"。
どのように解決すればよいですか?
コンストラクタの外でプロパティを初期化したい場合は
後期初期化プロパティ
はあなたが探しているものでしょう。プロパティの宣言は
lateinit
修飾子でプロパティを宣言します。これにより、そうでなければ必要なイニシャライザーを省略することができ、意味のある値が割り当てられるまで、プロパティへのアクセスは例外で失敗するようになります。
protected lateinit var sharedPreferences: SharedPreferences
関連
-
Androidで発生した問題、解決策とヒント
-
アンドロイドプロジェクトのパッケージングにgradleを使用する際の問題点
-
Android studioのインストールと問題発生、Emulator: PANIC: AVDのシステムパスが見つかりません。
-
android block certificate validation CertPathValidatorException: 認証パスのトラストアンカーが見つかりません
-
ライブラリをモジュールとしてインポートする際にエラーが発生しました。Error:A problem occurred configuring project ':library'.
-
Android ProgressBarのスタイルカラーを変更する
-
[解決済み] Eclipseにプロジェクトをインポートした後に「Must Override a Superclass Method」エラーが発生する。
-
[解決済み] lateinit "変数が初期化されたかどうかを確認する方法は?
-
[解決済み] by lazy" と "lateinit" を使ったプロパティの初期化
-
[解決済み] Kotlinのvarとvalの違いは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
armeabi-v7a armeabi arm64-v8a パラメータの意味説明
-
[android studio]com.android.ide.common.process.ProcessException: aaptの実行に失敗しました
-
AndroidStudio reports Could not resolve all artifacts for configuration ':app:classpath'.
-
最新のandroidプロジェクトディレクトリにあるarmeabi-v7aとarmeabiの具体的な意味とその違いを教えてください。
-
ArrayAdapter は、リソース ID が TextView であることが必要です。
-
例外「指定された子にはすでに親がいます」の解決方法。removeViewを呼び出す必要があります" の解決方法(ソースコード付き例)
-
Android Bluetooth 開発の基本プロセス
-
Androidのカラーグラデーション実装のまとめ
-
アンドロイドの遅延実行のいくつかの方法
-
android studioが新しいプロジェクトを作成しますが、プロジェクトの同期に成功するまでデザインエディタが使用できません。