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

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

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

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

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

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Q&A

0回答

603閲覧

Java List内を更新する方法 Androidアプリ開発

Ra-chan

総合スコア2

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

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

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

0グッド

0クリップ

投稿2020/05/29 13:19

前提

タスク登録をするAndroidアプリの開発をJavaで行っています。

登録したタスクを並び替え、その状態を保存する機能を実装しようとしています。

並び替えの機能は実装済みで、
現在は、「並び替えたタスク」と「並び替えによって場所移動したタスク」の位置情報を更新する機能を実装しています。


実装方法としては、
0. 並び替えによって場所が変わるタスクだけをまとめて更新する用のリストを作成
0. Adapterから場所が変わるタスクを取得
0. 取得したタスクのpositionを更新(コードは省略してあります)
0. 更新したタスクをリストに追加
0. リスト内のタスクをまとめて更新

を想定しています。

Java

1List<Task> updateTaskList = new ArrayList<>(); 2taskListAdapter.getTask(task); 3 4//省略 5//並び替えたTaskの位置(position)更新 6//省略 7 8updateTaskList.add(taskListAdapter.getTask(task)); 9 10//リストのTaskをまとめて更新 11Task updateTask = ???; //わからない箇所 12mTaskViewModel.update(updateTask); //引数にはTaskが入る

問題

上記1~5の実装のうち4番までは完了していますが、
5番の、更新したタスクを持っているリストの中身をまとめて更新するところの書き方がよく分からず…といった状態です。

ViewModelで作成したupdateメソッドに(引数Task)渡すことができれば完了すると思うのですが、
(全タスクのうち、並び替えによって更新する必要があるタスクだけを入れた)List( updateTaskList)の中にあるTaskたちは、どのようにしたら更新できるのでしょうか。

コード一部抜粋である上に、アプリの全体像まで伝えることができておらず、申し訳ないですが
どなたか詳しい方、ご回答よろしくお願いいたします。

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

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

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

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

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

hoshi-takanori

2020/05/30 07:32

1〜5の処理は何のクラスに書いてますか? adapter から task を取得しているのも違和感があります。ListAdapter なら表示に徹するべきで、何番目の要素を何番目に移動するメソッドを ViewModel が用意すべきでは。
Ra-chan

2020/05/31 08:40

1~5の処理についてはMainActivityに書いています。 adapterのgetTaskはRecyclerViewのpositionを指定してTaskを取得するメソッドなので、これを使用しようとしていました。 なるほど、ViewModelでそういったメソッドを用意すればいいのですね…。その方法で考え直してみたいと思います。 (開発自体初心者でまだまだ知識が乏しいため、各クラスの適切な使用ができていないのが現状です…。)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問