力图打造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提供了所有必需的代码。 –