金田著「はじめてのAndroidプログラミング第4版」でAndroidプログラミングを勉強しています。
本書の二つの目アプリ、第5章「最強!? じゃんけんアプリ」のコードをAndroidStudioで入力していると、次の写真のように21行目のPreferenceManagerの行で取消線が引かれ、「‘PrefernceManager’ is deprecated(非推奨).Deprecated in Java」を表示されます。(AndroidOSの改変が早いとは言え、初心者としては、評判の高い入門書を使って初めて入力したアプリで非推奨の文字を見ると、内心、この先この本を使って大丈夫か?と、不安を覚えてしまいます。)
取り消し線が表示されたままでも、appは正常に動くのですが、気持ち悪いので、色々資料をあたり、トライ&エラーを繰り返し、以下の方法で取り消し線が出ないようにしましたが、この方法で正しいでしょうか?
ご指導をお願いします。
kotlin
1package com.example.janken 2 3import android.content.Intent 4import android.os.Bundle 5import android.preference.PreferenceManager 6import androidx.core.content.edit 7import android.view.View 8import androidx.appcompat.app.AppCompatActivity 9import kotlinx.android.synthetic.main.activity_main.* 10 11 12class MainActivity : AppCompatActivity() { 13 override fun onCreate(savedInstanceState: Bundle?) { 14 super.onCreate(savedInstanceState) 15 setContentView(R.layout.activity_main) 16 17 gu.setOnClickListener { onJankenButtonTapped(it) } 18 choki.setOnClickListener { onJankenButtonTapped(it) } 19 pa.setOnClickListener { onJankenButtonTapped(it) } 20 21 val pref = PreferenceManager.getDefaultSharedPreferences(this) 22 pref.edit { clear() } 23 } 24 25 26 fun onJankenButtonTapped(view: View?) { 27 val intent = Intent(this, ResultActivity::class.java) 28 intent.putExtra("MY_HAND",view?.id) 29 startActivity(intent) 30 31 } 32
状況
何も気にせず書籍からコードを手入力し、21行目のval pref = PreferenceManager.getDefaultSharedPreferences(this)の行を入力した時に、PrefernceManagerの文字が赤く表示されます。これをAlt+EnterでAndroidStudioが解決し、インポートされたライブラリとクラスは次の通りでした。
import android.preference.PreferenceManager
#環境
win 10
AndroidStudio 4.0.1
kotlin 1.4.10
kotlinOptions {jvmTarget = 1.8}
compileSdkVersion 30
buildToolsVersion "30.0.1"
#取り消し線を消すためにやったこと
1.build.gradle(app)に以下のように、dependencies{}の中に
implementation 'androidx.preference:preference-ktx:1.1.1'
を追記し、SyncNowをクリックした。
(注:パラメータの書き方は、Android デベロッパー>Jetpack>ライブラリ>Preferenceを参考にしました。)
2.インポートされていたライブラリを次のように、android から androidxに変える(androidライブラリに含まれるPreferenceManagerクラスから、androidxライブラリに含まれるクラスに変える)
import androidx.preference.PreferenceManager
#結果
次の写真のように、PrefernceManagerに引かれていた取り消し線は消えました。
#聞きたいこと
今回の場合、PreferenceManagerに引かれた取り消し線を消す方法は、以上の手順で、間違えはないでしょか?(他にやるべきことはありますか?)
また、このようにやることで、古いライブラリを使わずに、新しいライブラリであるjetpackの一部のAndroidXライブラリを利用したことになるのでしょうか?
(gradleとか、Mavenリポジトリとか、依存関係とか、インプリメントとか、真剣にやればきっと本1冊分以上の知識が必要と推察します。入門者にはまだまだレベルが高く、ギブアップしそうです。)
ご教示の程、よろしくお願いします。
![guest](/img/icon/icnUserSample.jpg)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/09/18 13:24
2020/09/18 14:50
2020/09/18 15:55