[解決済み] Androidルームデータベース。EntityでArraylistを扱うには?
質問
オフラインでデータを保存するためのRoomを実装したところです。しかし、Entityクラスで、以下のエラーが発生します。
Error:(27, 30) error: Cannot figure out how to save this field into database. You can consider adding a type converter for it.
そして、クラスは以下の通りです。
@Entity(tableName = "firstPageData")
public class MainActivityData {
@PrimaryKey
private String userId;
@ColumnInfo(name = "item1_id")
private String itemOneId;
@ColumnInfo(name = "item2_id")
private String itemTwoId;
// THIS IS CAUSING THE ERROR... BASICALLY IT ISN'T READING ARRAYS
@ColumnInfo(name = "mylist_array")
private ArrayList<MyListItems> myListItems;
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public ArrayList<MyListItems> getMyListItems() {
return myListItems;
}
public void setCheckListItems(ArrayList<MyListItems> myListItems) {
this.myListItems = myListItems;
}
}
基本的に私はデータベースにArrayListを保存したいのですが、それに関連するものを見つけることができませんでした。あなたはRoomを使用してArrayを保存する方法に関して私を導くことができますか?
注:MyListItems Pojoクラスは2つの文字列を含んでいます(現在のところ)。
事前にありがとうございます。
どのように解決するのですか?
選択肢1:
MyListItems
である。
@Entity
として
MainActivityData
は
MyListItems
を設定すると
@ForeignKey
に戻る
MainActivityData
. この場合ですが。
MainActivityData
を持つことはできません。
private ArrayList<MyListItems> myListItems
のように、エンティティは他のエンティティを参照することはありません。ビューモデルや類似の POJO コンストラクトには
MainActivityData
とそれに関連する
ArrayList<MyListItems>
を使用しますが。
オプション2: ペアの
@TypeConverter
メソッドで
ArrayList<MyListItems>
を何らかの基本的な型に、あるいは型から変換します(例えば
String
のような、保存形式としてJSONを使うなどして)。では
MainActivityData
はその
ArrayList<MyListItems>
を直接指定することができます。しかし
MyListItems
に対するクエリーはできません。
MyListItems
へのクエリーはうまくいきません。
関連
-
Collections.sortがdoubleでソートできない問題を完璧に解決する。
-
Junitのユニットテストはjava.lang.Testを報告します。
-
セミコロン期待値エラー解決
-
テストが空であるかどうかを判断するためのオプションの処理
-
[解決済み] Androidのソフトキーボードをプログラムで閉じる/隠すにはどうすればよいですか?
-
[解決済み] Androidでアクティビティ起動時にEditTextにフォーカスが当たらないようにする方法
-
[解決済み] java.net.URLConnectionを使用してHTTPリクエストを発生させ処理する方法
-
[解決済み] AndroidのListViewで画像を遅延ロードする方法
-
[解決済み] Androidで画面の大きさをピクセル単位で取得する方法
-
[解決済み] Androidアプリケーションのアクティビティ間でデータを受け渡すにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
実行中にEclipseがポップアップする A Java Exception has occurred
-
アクセス制限です。タイプ 'Application' は API ではない(必要なライブラリに制限がある)。
-
executeQuery()でデータ操作文が発行できない。解決方法
-
Collections.sortがdoubleでソートできない問題を完璧に解決する。
-
無効な文字定数
-
SpringBoot 起動エラー java.nio.charset.MalformedInputException: 入力長 = 2 解決
-
配列定数は初期化子でのみ使用可能です。
-
IDEAError:javaの依存性エラー。Annotation processing is not supported for module cycles...(アノテーション処理はモジュールサイクルではサポートされていません。
-
Zipファイルの圧縮・解凍にantを使用する
-
WeChat小プログラム Bluetooth通信 Bluetoothモジュールデモ