力圖打造FirebaseRecyclerAdapter該檢索數據從對象類中的所有數據,但我得到的錯誤「無法java.util.HashMap的類型的值轉換爲字符串」 這裏是我的代碼:FirebaseRecyclerAdapter但無法將類型java.util.HashMap的值轉換爲String?
public class Match {
private Map<String, Object> name;
private Map<String, Object> desc;
public Map<String, Object> getName() {
return name;
}
public Map<String, Object> getDesc() {
return desc;
}
public Match(){} //even with /without this guy
}
public class MatchHolder extends RecyclerView.ViewHolder {
private final TextView mNameField;
private final TextView mMessageField;
public MatchHolder(View itemView) {
super(itemView);
mNameField = (TextView) itemView.findViewById(android.R.id.text1);
mMessageField = (TextView) itemView.findViewById(android.R.id.text2);
}
public void setName(Map<String, Object> name) {
mNameField.setText((CharSequence) name);
}
public void setDesc(Map<String, Object> desc) {
mMessageField.setText((CharSequence) desc);
}
}
public class SportActivity extends AppCompatActivity {
final FirebaseDatabase database = FirebaseDatabase.getInstance();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sport);
DatabaseReference ref = database.getReference("myApp/sportActivity"); //with this guy i get the mentioned error
//if use DatabaseReference ref = database.getReference("myApp/sportActivity/Match");
//i get in the log cat ,error W/ClassMapper: No setter/field for name1,name2 ,desc1,desc2 ...etc
RecyclerView matches = (RecyclerView) findViewById(recycle_viewer);
matches.setHasFixedSize(true);
matches.setLayoutManager(new LinearLayoutManager(this));
FirebaseRecyclerAdapter<Match, MatchHolder> mAdapter = new FirebaseRecyclerAdapter<Match, MatchHolder>(
Match.class,
android.R.layout.two_line_list_item,
MatchHolder.class,
ref) {
@Override
public void populateViewHolder(MatchHolder holder, Match match, int position) {
holder.setName(match.getName());
holder.setDesc(match.getDesc());
}
};
matches.setAdapter(mAdapter);
}
@Override
protected void onDestroy() {
super.onDestroy();
FirebaseRecyclerAdapter mAdapter = null;
mAdapter.cleanup();
}
}
我可以不能上傳我的數據庫的PIC,但是,結構是: 對myApp/sportActivity/ 這裏是sportActivity的JSON:
"sportActivity" : {
"Match" : {
"desc" : {
"des3" : "desc3",
"desc2" : "desc2"
},
"name" : {
"name1" : "name1",
"name2" : "name2"
}
}
}
}
}
不要嘗試上傳圖片,請編輯您的問題以包含數據庫的實際最小JSON。您可以通過點擊[Firebase數據庫控制檯](https://console.firebase.google.com/project/_/database/data)中的「導出JSON」鏈接來獲取此信息。 –
你能展示更多代碼嗎? – KeLiuyue
@KeLiuyue提供了所有必需的代碼。 –