あなたはandroid realm javaで自動インクリメンタルIDを設定する方法を知っていますか、私は現時点でrealmにはsqliteのようなサポートが組み込まれていません。Android realm-javaで自動インクリメントIDを設定するには?
-3
A
答えて
0
私は質問のために働いて何かを得たと思いますが、私はそれが全体に持っているものを傷つけるかわからないが、私はしかし、その少し遅いと感じていますが、とにかく以下のコードです: ロジックは次のとおりです。
- その空、その空の場合は、他の1ない空に設定情報でarticleID値は、その後情報でarticleIDの最後の最高値を取得作る場合RealmObject(例はそれがRealmobjectを拡張DbArticle.java)
- チェックデータオブジェクトを取得します 1、それから新しいデータが領域データベースに追加されるとこれを思い出してください。
コード:
DbArticle.javaがある:私はちょうど挿入またはレルムへの書き込みをwriteArticle(と呼ばれる方法)を作成した後
public class DbArticle extends RealmObject {
private String articleTitle,articleDate,articleDescription,articleImage,articleAudioFile;
private boolean articleIsReadYet;
private int articleID;
public String getArticleTitle() {
return articleTitle;
}
public void setArticleTitle(String articleTitle) {
this.articleTitle = articleTitle;
}
public String getArticleDate() {
return articleDate;
}
public void setArticleDate(String articleDate) {
this.articleDate = articleDate;
}
public String getArticleDescription() {
return articleDescription;
}
public void setArticleDescription(String articleDescription) {
this.articleDescription = articleDescription;
}
public String getArticleImage() {
return articleImage;
}
public void setArticleImage(String articleImage) {
this.articleImage = articleImage;
}
public String getArticleAudioFile() {
return articleAudioFile;
}
public void setArticleAudioFile(String articleAudioFile) {
this.articleAudioFile = articleAudioFile;
}
public boolean isArticleIsReadYet() {
return articleIsReadYet;
}
public void setArticleIsReadYet(boolean articleIsReadYet) {
this.articleIsReadYet = articleIsReadYet;
}
public int getArticleID() {
return articleID;
}
public void setArticleID(int articleID) {
this.articleID = articleID;
}
}
は、以下を参照:
を
public void writeArticle(String ... args){
Realm realm = Realm.getDefaultInstance();
realm.beginTransaction();
DbArticle conx = realm.createObject(DbArticle.class); // Create a new object
conx.setArticleTitle(args[0]);
// Log.e("xxx","--->wrote:"+args[0]);
conx.setArticleDescription(args[1]);
conx.setArticleDate(args[2]);
conx.setArticleImage(args[3]);
conx.setArticleIsReadYet(false);
conx.setArticleAudioFile(args[4]);
String VideoUrl=args[5];
RealmResults<DbArticle> results = realm.where(DbArticle.class).findAll();
if (results.isEmpty() && results.size() < 1) {
final int INIT_ID = 0;
conx.setArticleID(INIT_ID);
} else {
final int ADD_ID = 1;
conx.setArticleID(
results.max("articleID").intValue() + ADD_ID
);
}
realm.commitTransaction();
realm.close();
}
これは私のために働いていますが、記事IDは@PrimaryKeyアノテーションで設定されていませんのでご注意ください!
だから、みんな、このコードが持っている挫折と、コードを修正してよりうまくいくように修正できるかどうかを教えてください。
0
RealmObjectを拡張しているモデルクラスの名前を渡し、カラム名 "con_id"をModelクラスのidフィールド(主キー)に変更します。
このメソッドを呼び出すと、新しいIDを持つ新しいレコードを挿入するために使用できる1つのIDが与えられます。
public static long getUniqueId(Realm realm, Class className) {
Number number = realm.where(className).max("con_id");
if (number == null) return 1;
else return (long) number + 1;
}
関連する問題
- 1. SQL Serverで自動インクリメントIDのMAXを設定する
- 2. プライマリキーに自動インクリメントを設定する
- 3. JsGrid - 自動インクリメントID
- 4. 自動インクリメントIDの
- 5. realmの主キー自動インクリメントを設定する方法android
- 6. MySQLテーブルの自動インクリメントIDの固定
- 7. SQLiteのIDを自動インクリメント
- 8. SQL - 自動インクリメントIDを
- 9. コアデータ内で自動的にインクリメントするフィールドを設定する
- 10. MongoDBの自動インクリメントでプライマリキーを設定する方法は?
- 11. JavaのHibernate ID自動インクリメント
- 12. Alfrescoの自動インクリメント(ユニーク)ID
- 13. ASP.NET MVCの自動インクリメントID
- 14. C#クラス自動インクリメントID
- 15. Entity Framework ID自動インクリメント
- 16. 自動インクリメントIDをトランザクション内で予約
- 17. SqlServerの設定Serial_No自動インクリメントとデクリメント
- 18. SQLデベロッパーで自動インクリメント列を設定する方法
- 19. App Engineデータストア:NDBでID自動インクリメント
- 20. 以前の値に自動インクリメントを設定するJAVA PreparedStatement MYSQL
- 21. javascriptで自動インクリメントIDを使用する方法は?
- 22. ジャスセス行を削除して自動インクリメント列を設定する
- 23. phpmyadmin 2桁の自動インクリメントを設定する方法
- 24. バウチャーコードの自動インクリメント変数を設定する
- 25. App Engineデータストア内の自動インクリメントID
- 26. コントローラ内の角度ID自動インクリメント
- 27. クラス間の自動インクリメントID - JAVA
- 28. 自動インクリメントの "id"カラムの問題
- 29. 要素IDの自動インクリメント値
- 30. カスタムタイプの自動インクリメントIDコード番号
StackOverflowの上の完全なコードを求めるのではなく、いくつかのコーディング作業を行い、その後、予想通り –
シェアすでに試したコードを削除する提案やバグのために頼むが、動作していないと、それが与える場合もlogcatを共有しないでください。エラー –
私のコードを共有しました。解決策として以下を見てください。 –