Firebaseデータベースからデータを取得してビューに表示しようとしています。このコードは、ArrayList内のデータがハコードされているときに正常に動作します。しかし、それはArrayListの中のデータがFirebase Database.Thisから取得したデータで満たされたときに、空のビューを表示することは、私がログに取得していますものです:ここではW/ClassMapper:classNameのcategoryNameのセッター/フィールドが見つかりません
W/ClassMapper: No setter/field for categoryName found on class
W/ClassMapper: No setter/field for categoryImageUrl found on class
and so on..
はMainActivity.java(ECartHomeActivity.java)です(使用します
public class ECartHomeActivity extends AppCompatActivity {
public static final String DATABASE_PATH_UPLOADS = "ProductCategoryModel";
// firebase objects
DatabaseReference databaseMessages;
ArrayList<ProductCategoryModel> productCategoryList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_ecart);
productCategoryList = new ArrayList<ProductCategoryModel>();
databaseMessages = FirebaseDatabase.getInstance().getReference(DATABASE_PATH_UPLOADS);
databaseMessages.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
productCategoryList.clear();
for (DataSnapshot messageSnapshot : dataSnapshot.getChildren()){ // iterates through all the messages
ProductCategoryModel message = messageSnapshot.getValue(ProductCategoryModel.class);
ProductCategoryModel fire = new ProductCategoryModel();
String categoryName = message.getProductCategoryName();
String categoryDescription = message.getProductCategoryDescription();
String categoryDiscount = message.getProductCategoryDiscount();
String categoryImageUrl = message.getProductCategoryImageUrl();
fire.setProductCategoryName(categoryName);
fire.setProductCategoryDescription(categoryDescription);
fire.setProductCategoryDiscount(categoryDiscount);
fire.setProductCategoryImageUrl(categoryImageUrl);
productCategoryList.add(fire);
}
CenterRepository.getCenterRepository().setListOfCategory(productCategoryList);
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
}); }
"productCategoryList" ArrayListがハードコードされている場合、ビューにデータが表示されます。 このArrayListがDatabaseから取得したデータでいっぱいになると、データは表示されません。
ProductCategoryModel.java
public class ProductCategoryModel {
public ProductCategoryModel(){
}
private String categoryName;
private String categoryDescription;
private String categoryDiscount;
private String categoryImageUrl;
/**
* @param productCategoryName
* @param productCategoryDescription
* @param productCategoryDiscount
* @param productCategoryUrl
*/
public ProductCategoryModel(String productCategoryName, String productCategoryDescription,
String productCategoryDiscount, String productCategoryUrl) {
super();
this.categoryName = productCategoryName;
this.categoryDescription = productCategoryDescription;
this.categoryDiscount = productCategoryDiscount;
this.categoryImageUrl = productCategoryUrl;
}
/**
* @return the idproductcategory
*/
public String getProductCategoryName() {
return categoryName;
}
/**
* @param categoryName
* the idproductcategory to set
*/
public void setProductCategoryName(String categoryName) {
this.categoryName = categoryName;
}
/**
* @return the productDescription
*/
public String getProductCategoryDescription() {
return categoryDescription;
}
/**
* @param categoryDescription
* the productDescription to set
*/
public void setProductCategoryDescription(String categoryDescription) {
this.categoryDescription = categoryDescription;
}
/**
* @return the productDiscount
*/
public String getProductCategoryDiscount() {
return categoryDiscount;
}
/**
* @param categoryDiscount
* the productDiscount to set
*/
public void setProductCategoryDiscount(String categoryDiscount) {
this.categoryDiscount = categoryDiscount;
}
/**
* @return the productUrl
*/
public String getProductCategoryImageUrl() {
return categoryImageUrl;
}
/**
* @param categoryImageUrl
* the productUrl to set
*/
public void setProductCategoryImageUrl(String categoryImageUrl) {
this.categoryImageUrl = categoryImageUrl;
} }
これはJSONコードです:
{
"ProductCategoryModel" : {
"1" : {
"categoryName" : "anonymous",
"categoryDescription" : "Heyyyy",
"categoryDiscount" : "anonymous",
"categoryImageUrl" : "anonymous"
},
"2" : {
"categoryName" : "anonymous",
"categoryDescription" : "Heyyyy",
"categoryDiscount" : "anonymous",
"categoryImageUrl" : "anonymous"
},
"3" : {
"categoryName" : "anonymous",
"categoryDescription" : "Heyyyy",
"categoryDiscount" : "anonymous",
"categoryImageUrl" : "anonymous"
} } }