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

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

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

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

Q&A

解決済

1回答

5697閲覧

AndroidXライブラリの使い方

guijiu

総合スコア36

Android

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

0グッド

1クリップ

投稿2020/09/18 07:04

編集2020/09/18 16:03

金田著「はじめての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冊分以上の知識が必要と推察します。入門者にはまだまだレベルが高く、ギブアップしそうです。)

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

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

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

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

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

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

guest

回答1

0

ベストアンサー

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

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

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

はい、なります。

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

Preference | Android Developers

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

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

投稿2020/09/18 10:09

keicha_hrs

総合スコア6768

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

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

mingos

2020/09/18 13:24

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

2020/09/18 14:50

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

2020/09/18 15:55

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問