未能反弹键入为什么我得到这个例外,我在做什么错在这里
W/System.err:
at com.firebase.client.DataSnapshot.getValue(DataSnapshot.java:183)
caused by : com.fasterxml.jackson.databind.JsonMappingException:
Can not instantiate value of type [simple type, class hi.example.com.hi.DataModel] from String value; no single-String constructor/factory method.
即使我在使用单串的构造函数在我的DataModel类,我得到一个字符串值在一个时间构造器,,为什么出现这种情况,,请别人帮我..
here is my json file
{
"messages": {
"matt__walk": {
"Username": "matt__walk",
"imageurl": "https://firebasestorage.googleapis.com/v0",
"text": "hii"
}
}
}
的DataModel类:
@JsonIgnoreProperties(ignoreUnknown=true)
public class DataModel {
private String Username;
private String imageurl;
private String text;
public DataModel(){
}
public String getUsername() {
return Username;
}
public String getText() {
return text;
}
public String getImageUrl() {
return imageurl;
}
}
马inActivity class:
public class MainActivity extends AppCompatActivity {
private static final String TAG = "MainActivity";
Menu menu;
private Toolbar toolbar;
private LinearLayoutManager layoutManager;
private static RecyclerView recyclerView;
private Firebase ref;
private String res;
private DatabaseReference mDatabase;
private FirebaseRecyclerAdapter<DataModel, MessageViewHolder> mFirebaseAdapter;
public static class MessageViewHolder extends RecyclerView.ViewHolder {
View mViews;
CircleImageView img;
TextView name,data;
public MessageViewHolder(View views) {
super(views);
mViews = views;
}
public void setText(String Name) {
TextView name = (TextView) mViews.findViewById(R.id.Name);
name.setText(Name);
}
public void setData(String Data) {
TextView data = (TextView) mViews.findViewById(R.id.datas);
data.setText(Data);
}
public void setImage(Context cnt, String imageUrl) {
CircleImageView img = (CircleImageView) mViews.findViewById(R.id.image);
Picasso.with(cnt).load(imageUrl).into(img);
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.mainactivity);
toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
Firebase.setAndroidContext(this);
recyclerView = (RecyclerView) findViewById(R.id.recycler);
recyclerView.setHasFixedSize(true);
layoutManager = new LinearLayoutManager(this);
ref = new Firebase("https://hi-34.firebaseio.com/messages/matt__walk");
mFirebaseAdapter = new FirebaseRecyclerAdapter<DataModel, MessageViewHolder>(
DataModel.class,
R.layout.rowplaces,
MessageViewHolder.class,
ref
) {
@Override
protected void populateViewHolder(MessageViewHolder messageViewHolder, DataModel dataModel, int i) {
messageViewHolder.setText(dataModel.getUsername());
messageViewHolder.setData(dataModel.getText());
messageViewHolder.setImage(getApplicationContext(),dataModel.getImageUrl());
}
};
mFirebaseAdapter.registerAdapterDataObserver(new RecyclerView.AdapterDataObserver() {
@Override
public void onItemRangeInserted(int positionStart, int itemCount) {
super.onItemRangeInserted(positionStart, itemCount);
int friendlyMessageCount = mFirebaseAdapter.getItemCount();
int lastVisiblePosition = layoutManager.findLastCompletelyVisibleItemPosition();
if (lastVisiblePosition == -1 ||
(positionStart >= (friendlyMessageCount - 1) &&
lastVisiblePosition == (positionStart - 1))) {
recyclerView.scrollToPosition(positionStart);
}
}
});
recyclerView.setLayoutManager(layoutManager);
recyclerView.setAdapter(mFirebaseAdapter);
}
我敢肯定,没有表现出你的代码,所以把它放在什么地方,以便人们可以看到你,你不会得到任何帮助正在做/尝试。 –
'ref = new Firebase(“URL here”);'请将该数据发布到该URL(作为文本,没有屏幕截图),您可以从Firebase仪表板导出数据。 –
@FrankvanPuffelen现在请告诉我为什么我得到这个例外。 – user4771594