App*_*oid 1 database json realm gson retrofit2
我是Realm集成的新手。我正在尝试将翻新的json响应保存到Realm数据库中。但我仍然困惑如何完成此任务以进行改装2。
我收到json响应,并根据RealM文档扩展了RealmObject类。但仍然没有获得将我的回应直接存储到领域中的好方法。
仪表板活动:
apiInterface = APIClient.getClient().create(APIInterface.class);
final Call<RealmList<ExampleTest>> call = apiInterface.getSurvay();
call.enqueue(new Callback<RealmList<ExampleTest>>() {
@Override
public void onResponse(Call<RealmList<ExampleTest>> call, Response<RealmList<ExampleTest>> response) {
resource = response.body();
Log.d(" response "," success ");
}
Run Code Online (Sandbox Code Playgroud)
API客户端:
{
HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor();
interceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
OkHttpClient client = new OkHttpClient.Builder().addInterceptor(interceptor).build();
retrofit = new Retrofit.Builder()
.baseUrl("** my URL **")
.addConverterFactory(GsonConverterFactory.create())
.client(client)
.build();
return retrofit;
}
Run Code Online (Sandbox Code Playgroud)
build.gradle:
compile ('com.squareup.retrofit2:retrofit:2.1.0') {
exclude module: 'okhttp'
}
compile 'com.google.code.gson:gson:2.6.2'
compile 'com.squareup.retrofit2:converter-gson:2.1.0'
compile 'com.squareup.okhttp3:logging-interceptor:3.4.1'
compile 'com.squareup.okhttp3:okhttp:3.4.1'
Run Code Online (Sandbox Code Playgroud)
POJO类:
示例测试:
public class ExampleTest extends RealmObject {
@SerializedName("Id")
@Expose
private Integer id;
@SerializedName("name")
@Expose
private String surveyName;
@SerializedName("Language_id")
@Expose
private Integer languageId;
@SerializedName("image")
@Expose
private String surveyImage;
@SerializedName("description")
@Expose
private String surveyDescription;
@SerializedName("ListQuestion")
@Expose
private RealmList<ListQuestion> listQuestion = null;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getSurveyName() {
return surveyName;
}
public void setSurveyName(String surveyName) {
this.surveyName = surveyName;
}
public Integer getLanguageId() {
return languageId;
}
public void setLanguageId(Integer languageId) {
this.languageId = languageId;
}
public String getSurveyImage() {
return surveyImage;
}
public void setSurveyImage(String surveyImage) {
this.surveyImage = surveyImage;
}
public String getSurveyDescription() {
return surveyDescription;
}
public void setSurveyDescription(String surveyDescription) {
this.surveyDescription = surveyDescription;
}
public RealmList<ListQuestion> getListQuestion() {
return listQuestion;
}
public void setListQuestion(RealmList<ListQuestion> listQuestion) {
this.listQuestion = listQuestion;
}
}
Run Code Online (Sandbox Code Playgroud)
ListQuestion:
public class ListQuestion extends RealmObject {
@SerializedName("Id")
@Expose
private Integer id;
@SerializedName("Question_text")
@Expose
private String questionText;
@SerializedName("Answer_type_id")
@Expose
private Integer answerTypeId;
@SerializedName("Answer_type")
@Expose
private String answerType;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getQuestionText() {
return questionText;
}
public void setQuestionText(String questionText) {
this.questionText = questionText;
}
public Integer getAnswerTypeId() {
return answerTypeId;
}
public void setAnswerTypeId(Integer answerTypeId) {
this.answerTypeId = answerTypeId;
}
public String getAnswerType() {
return answerType;
}
public void setAnswerType(String answerType) {
this.answerType = answerType;
}
Run Code Online (Sandbox Code Playgroud)
领域:
private void initRealm() {
Realm.init(this);
RealmConfiguration config = new RealmConfiguration.Builder()
.name("books.realm")
.schemaVersion(1)
.deleteRealmIfMigrationNeeded()
.build();
Realm.setDefaultConfiguration(config);
}
Run Code Online (Sandbox Code Playgroud)
请帮助我如何通过改型2将json响应存储到领域中。
我从Realm官方网站和其他博客获得了答案。
我上面的代码工作完美。只需要正确添加Realm功能即可。
活动中:仪表板
call.enqueue(new Callback<RealmList<ExampleTest>>() {
@Override
public void onResponse(Call<RealmList<ExampleTest>> call, Response<RealmList<ExampleTest>> response) {
resource = response.body();
Realm.init(DashboardActivity.this);
config = new RealmConfiguration.Builder()
.name("books.realm")
.schemaVersion(1)
.deleteRealmIfMigrationNeeded()
.build();
Realm.setDefaultConfiguration(config);
// add response to realm database
Realm realm = Realm.getInstance(config);
realm.beginTransaction();
realm.copyToRealmOrUpdate(resource);
realm.commitTransaction();
realm.close();
// programmatically check : data is inserted in to realm or not
int notesCount = realm.where(ExampleTest.class).findAll().size();
int notesCount2 = realm.where(ListConditionalQuestion.class).findAll().size();
int notesCount3 = realm.where(LstHotSpot.class).findAll().size();
Log.d("my first",String.valueOf(notesCount));
Log.d("my second",String.valueOf(notesCount2));
Log.d("my 33333",String.valueOf(notesCount3));
}
@Override
public void onFailure(Call<RealmList<ExampleTest>> call, Throwable t) {
Log.d("fail","response fail");
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2959 次 |
| 最近记录: |