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

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

ただいまの
回答率

87.92%

AndroidXライブラリの使い方

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 1
  • VIEW 1,168

score 18

金田著「はじめてのAndroidプログラミング第4版」でAndroidプログラミングを勉強しています。

本書の二つの目アプリ、第5章「最強!? じゃんけんアプリ」のコードをAndroidStudioで入力していると、次の写真のように21行目のPreferenceManagerの行で取消線が引かれ、「‘PrefernceManager’ is deprecated(非推奨).Deprecated in Java」を表示されます。(AndroidOSの改変が早いとは言え、初心者としては、評判の高い入門書を使って初めて入力したアプリで非推奨の文字を見ると、内心、この先この本を使って大丈夫か?と、不安を覚えてしまいます。)

イメージ説明

取り消し線が表示されたままでも、appは正常に動くのですが、気持ち悪いので、色々資料をあたり、トライ&エラーを繰り返し、以下の方法で取り消し線が出ないようにしましたが、この方法で正しいでしょうか?
ご指導をお願いします。

package com.example.janken

import android.content.Intent
import android.os.Bundle
import android.preference.PreferenceManager
import androidx.core.content.edit
import android.view.View
import androidx.appcompat.app.AppCompatActivity
import kotlinx.android.synthetic.main.activity_main.*


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

        gu.setOnClickListener { onJankenButtonTapped(it) }
        choki.setOnClickListener { onJankenButtonTapped(it) }
        pa.setOnClickListener { onJankenButtonTapped(it) }

        val pref = PreferenceManager.getDefaultSharedPreferences(this)
        pref.edit { clear() }
    }


    fun onJankenButtonTapped(view: View?) {
        val intent = Intent(this, ResultActivity::class.java)
        intent.putExtra("MY_HAND",view?.id)
        startActivity(intent)

    }

状況

何も気にせず書籍からコードを手入力し、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冊分以上の知識が必要と推察します。入門者にはまだまだレベルが高く、ギブアップしそうです。)

ご教示の程、よろしくお願いします。

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

+1

PreferenceManagerに引かれた取り消し線を消す方法は、以上の手順で、間違えはないでしょか?(他にやるべきことはありますか?)

はい、手順に間違いはありません。

古いライブラリを使わずに、新しいライブラリであるjetpackの一部のAndroidXライブラリを利用したことになるのでしょうか?

はい、なります。

下記資料も参考にされると良いかと思います。

Preference | Android Developers

入門者にはまだまだレベルが高く、ギブアップしそうです。

よく自力でここまでお調べになったと思います。これだけの調査力があれば、もっと自信を持ってアプリ開発に取り組まれてはいかがかと思います。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2020/09/18 22:24

    大変素晴らしい回答ですし、質問者さんの解決能力も素晴らしいと思います。

    > 質問者さんへ
    参考にしている本の内容は悪くありませんが、2019年ですからすでに古い内容となってしまっています。
    これは本のせいではありません。
    書籍を買うならできるだけ最新の本を買う、買ったら賞味期限が過ぎないうちにすべて消化するくらいの気持ちが必要です。
    ただ、それでもAndroidのSDKの更新が早いので、結局はネットでググったり自分で試行錯誤していくしかないし、それがプログラミングという行為なのかなって思います。
    とにかく心配し過ぎずに、困ったらネットでググったり、質問したりすればよろしいかと思います。
    がんばってください。

    キャンセル

  • 2020/09/18 23:50

    keicha_hrsさん、度々のご教示ありがとうございます。上記の手順でOKとのことでしたので、今後もAndroidXライブラリに関する修正は、同様の手順で進めていこうと思います。

    キャンセル

  • 2020/09/19 00:55

    mingosさん、アドバイスありがとうございます。
     おっしゃるとおり、SDKの更新が早く、参考書の賞味期限が過ぎてしまっているのかもしれませんね。
     そうは言っても、この本の後に出版された本の書評をamazonのサイトでみると、今一つのものばかりで、「Androidアプリ開発の教科書」と本書のどちらかと思い、書店で読み比べをしましたが、どちらが良いかわからず、結局カラー印刷の本書を選んでしまいました。(このカラー印刷も失敗の始まりで、LEDデスクライトの光が本のテカテカした紙に反射して眩しく、読みづらいんです。関係ない話ですみません。)
     実は、5月ごろに本書でAndroidプログラミングを始めたのですが、不慣れなラムダ式を多用した初めてのkotlin、よく理解できないAndroidのAPI、そして先ほどの反射して読みづらい紙面のトリプルパンチを食らって8章ぐらいで挫折し、「Androidアプリ開発の教科書(java版)」に一時転向して、XなしのAndroidAPIに少し慣れたので、またkotlinに戻ってきました。
     最近は時代が良くなりましたよね。貴殿が言われる通り、ググればそこそこ(断片的ではあるが)情報が得られ、また特に本サイトやqittaなどのSNSの功績は高いですね。(こういう優良なサイトは、長く続いてほしいと心から思います。以前、lang-8という語学交流サイトがあり、海外のネイティブと無料で相互語学学習の交流ができたのですが、その会社が広告収入だけでは、立ち行かなくなり、有料の別サービスを提供したため、事実上lan-8は閉鎖になってしまいました。残念、、、話が脱線しました。)
     ただ、ネットの情報は断片的で、やはりまとまった情報が得られる書籍(の教科書)にはかなわないと思います。それだけに良い本の著者や出版社の編集者には、一つ頑張ってもらって、本の内容のメンテ(マイナーなバージョンアップ)をお願いしたいと思います。
     しかし、貴殿が言われるように、ネットで調べAndroidデベロッパなどの一次情報に近づくことも大事ですよね。(関係ない話しを詰め込みすぎ、まとまりのない文章になってしまいました。)

    キャンセル

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

  • ただいまの回答率 87.92%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る