[Android/Java] (覚書)Jetpack NavigationとViewModelを採用した新規アプリ作成時のチートシート
Android Studio 4.1.3(windows版) での流れとなります
業務上他のプラットフォームの対応があったりでandroidの開発を継続的にできないので
ついど忘れしちゃいそうな予感のため覚書としてまとめました
Android DeveloperのJetpack Navigationの説明は以下です
新規プロジェクト作成
新規プロジェクト作成でEmpty Activity を選択します
navigationの作成
navigationフォルダを作成します
Android Resource Directory を選択
Resource type でnavigationを選択
作成されたnavigationを選択した状態でNavigation Resource File を選択
ここではFile name をnav_graphとします
ok押します
MainActivityのlayoutに先ほど作成したNavHostFragmentを追加します
※NavHostFragmentを選択してLayoutのDesignにドロップです
先ほど作成したnav_graphを選択です
不要なHellow World!のTextViewは削除してしまいましょう
MainのFragmentを追加します
Layoutのnav_grahに戻りClick to add a destinationをクリックします
Create new destination を選択します
今回はViewModelを使用するため、Fragment (with ViewModel) を選択します
ここではFragment Name をMainFragment、ViewModel Name も自動で設定されたMainViewModelとします
MainFragment/MainViewModelが作成されました
(必要に応じて対応) AndroidViewModelに変更
ViewModelでApplicationクラスを使いたい場合は
自動生成さてたコードをAndroidViewModelに変更します
extends のViewModelをAndroidViewModelに変更して
windowsの場合はAlt+EnterなどでAndroidViewModelのimportの追加とコンストラクタを追加します
public class MainViewModel extends ViewModel {
// TODO: Implement the ViewModel
}
public class MainViewModel extends AndroidViewModel {
public MainViewModel(@NonNull Application application) {
super(application);
}
// TODO: Implement the ViewModel
}
適切なバージョンのライブラリを指定
今回はjunit以外は新しいものが適応されていましたが
Project Structure のSuggestion で警告などが出てたら適切なバージョンのものに変更します
MainActivityのlayout xmlのrename
新規プロジェクトでEmpty Activity を選択した場合、layoutのxmlのファイル名がactivity_main.xmlとなっています
View/DataBindingを使用する場合、自動生成されたBindingクラス名がxmlのファイル名依存のため
気持ち悪い場合はmain_activity.xmlにrenameします
Fragmentのxmlの命名規則もxxx_fragment.xmlのように統一することをおすすめします
画面遷移の実装
Jetpack Navigationの画面遷移の実装方法が知りたい場合は以下の記事を参考にしてください
ViewModelの実装
Jetpack ViewModelの簡単な実装例を知りたい方は以下の記事を参考にしてください
Author And Source
この問題について([Android/Java] (覚書)Jetpack NavigationとViewModelを採用した新規アプリ作成時のチートシート), 我々は、より多くの情報をここで見つけました https://qiita.com/smurata_pvt/items/a8454cc635ba693df6b8著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .