ma classe Blog est icicom.google.firebase.database.DatabaseException: Impossible de convertir la valeur de type java.lang.Double à cordes
package com.nego.lakshan.nego;
public class Blog {
private String FROM;
private String TO;
private String DESCRIPTION;
private String IMAGE;
private String DATE;
private double TOLAT;
private double TOLNG;
private double FROMLAT;
private double FROMLNG;
public Blog(){
}
public Blog(String FROM, String TO, String DESCRIPTION, String IMAGE, String DATE, String TOLAT, String TOLNG, String FROMLAT, String FROMLNG) {
this.FROM = FROM;
this.TO = TO;
this.DESCRIPTION = DESCRIPTION;
this.IMAGE = IMAGE;
this.DATE = DATE;
this.TOLAT = Double.parseDouble(TOLAT);
this.TOLNG = Double.parseDouble(TOLNG);
this.FROMLAT = Double.parseDouble(FROMLAT);
this.FROMLNG = Double.parseDouble(FROMLNG);
}
public String getFROM() {
return FROM;
}
public void setFROM(String FROM) {
this.FROM = FROM;
}
public String getTO() {
return TO;
}
public void setTO(String TO) {
this.TO = TO;
}
public String getIMAGE() {
return IMAGE;
}
public void setIMAGE(String IMAGE) {
this.IMAGE = IMAGE;
}
public String getDATE() {
return DATE;
}
public void setDATE(String DATE) {
this.DATE = DATE;
}
public double getTOLAT() {
return TOLAT;
}
public void setTOLAT(String TOLAT) {
this.TOLAT = Double.parseDouble(TOLAT);
}
public double getTOLNG() {
return TOLNG;
}
public void setTOLNG(String TOLNG) {
this.TOLNG = Double.parseDouble(TOLNG);
}
public double getFROMLAT() {
return FROMLAT;
}
public void setFROMLAT(String FROMLAT) {
this.FROMLAT = Double.parseDouble(FROMLAT);
}
public double getFROMLNG() {
return FROMLNG;
}
public void setFROMLNG(String FROMLNG) {
this.FROMLNG = Double.parseDouble(FROMLNG);
}
public String getDESCRIPTION() {
return DESCRIPTION;
}
public void setDESCRIPTION(String DESCRIPTION) {
this.DESCRIPTION = DESCRIPTION;
}
}
et ma classe de fragmenter est utilisé pour afficher les données en recycleur vue que je reçois de la base de données d'exécution (Firebase). et ma classe de fragment est ici
package com.nego.lakshan.nego;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import android.widget.Toast;
import com.firebase.ui.database.FirebaseRecyclerAdapter;
import com.google.firebase.database.DatabaseReference;
public class RecieverFragment extends Fragment {
public RecieverFragment() {
// Required empty public constructor
}
private RecyclerView mBlogList;
private DatabaseReference mDatabaseReference;
private View v;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
v=inflater.inflate(R.layout.fragment_reciever, container, false);
mBlogList= (RecyclerView) v.findViewById(R.id.fragment);
mBlogList.setHasFixedSize(true);
mDatabaseReference = FirebaseDatabase.getInstance().getReference().child("Blog");
mBlogList.setLayoutManager(new LinearLayoutManager(getContext()));
Toast.makeText(getContext(),"mmmm",Toast.LENGTH_SHORT).show();
return v;
}
@Override
public void onStart() {
super.onStart();
FirebaseRecyclerAdapter<Blog,BlogViewHolder>
mFirebaseRecyclerAdapter=new FirebaseRecyclerAdapter<Blog, BlogViewHolder>
(Blog.class,
R.layout.blog_item,
BlogViewHolder.class,
mDatabaseReference) {
@Override
protected void populateViewHolder(BlogViewHolder viewHolder, Blog
model, int position) {
Toast.makeText(getContext(),"maaa",Toast.LENGTH_SHORT).show();
viewHolder.setDATE(model.getDATE());
viewHolder.setDESCRIPTION(model.getDESCRIPTION());
viewHolder.setFROM(model.getFROM());
viewHolder.setTO(model.getTO());
}
};
mBlogList.setAdapter(mFirebaseRecyclerAdapter);
}
public static class BlogViewHolder extends RecyclerView.ViewHolder{
View mView;
public BlogViewHolder(View itemView) {
super(itemView);
mView=itemView;}
public void setDATE(String DATE){
TextView date = (TextView) mView.findViewById(R.id.DATE);
date.setText(DATE);
}
public void setDESCRIPTION(String DESCRIPTION){
TextView desc= (TextView) mView.findViewById(R.id.DESCRIPTION);
desc.setText(DESCRIPTION);
}
public void setFROM(String FROM){
TextView from = (TextView) mView.findViewById(R.id.FROM);
from.setText(FROM);
}
public void setTO(String TO){
TextView to = (TextView) mView.findViewById(R.id.TO);
to.setText(TO);
}
}
}
et ma mise en page fragment fichier
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.nego.lakshan.nego.RecieverFragment"
android:id="@+id/place_holder">
<!-- TODO: Update blank fragment layout -->
<android.support.v7.widget.RecyclerView
android:scrollbars="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/fragment">
</android.support.v7.widget.RecyclerView>
</FrameLayout>
et im en utilisant Vignettes pour une vue (messages de blog)
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="20dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="104dp"
android:orientation="horizontal"
android:weightSum="1">
<ImageView
android:id="@+id/PROFILEPIC"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="1.05" />
<LinearLayout
android:layout_width="244dp"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/NAME"
android:layout_width="match_parent"
android:layout_height="53dp" />
<TextView
android:id="@+id/DATE"
android:layout_width="match_parent"
android:layout_height="52dp" />
</LinearLayout>
</LinearLayout>
<TextView
android:id="@+id/DESCRIPTION"
android:layout_width="match_parent"
android:layout_height="164dp" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:weightSum="1">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:orientation="vertical"
android:layout_weight="0.16"
android:weightSum="1">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="From"
android:layout_weight="0.31" />
<TextView
android:layout_width="match_parent"
android:layout_height="0dp"
android:text="To"
android:layout_weight="0.51" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:orientation="vertical"
android:layout_weight="0.88"
android:weightSum="1">
<TextView
android:id="@+id/FROM"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="0.41" />
<TextView
android:id="@+id/TO"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="0.19" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:orientation="vertical">
<Button
android:layout_width="109dp"
android:layout_height="wrap_content"
android:text="FROMLOCATION"/>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="TOLOCATION"/>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:layout_width="164dp"
android:layout_height="wrap_content"
android:text="DIrection"/>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Message"/>
</LinearLayout>
</LinearLayout>
</android.support.v7.widget.CardView>
et im obtenir erreur et l'application se bloque quand j'appelle le fragment
com.nego.lakshan.nego E/AndroidRuntime: FATAL EXCEPTION: main
Process:
com.nego.lakshan.nego, PID: 28426
com.google.firebase.database.DatabaseException: Failed to convert value of
type java.lang.Double to String
at
com.google.android.gms.internal.zzbqi.zzaD(Unknown Source)
at
com.google.android.gms.internal.zzbqi.zzb(Unknown Source)
at
com.google.android.gms.internal.zzbqi.zza(Unknown Source)
at
com.google.android.gms.internal.zzbqi.zzb(Unknown Source)
at
com.google.android.gms.internal.zzbqi$zza.zze(Unknown Source)
at
com.google.android.gms.internal.zzbqi$zza.zzaG(Unknown Source)
at
com.google.android.gms.internal.zzbqi.zze(Unknown Source)
at
com.google.android.gms.internal.zzbqi.zzb(Unknown Source)
at
com.google.android.gms.internal.zzbqi.zza(Unknown Source)
at
com.google.firebase.database.DataSnapshot.getValue(Unknown Source)
at
com.firebase.ui.database.FirebaseRecyclerAdapter.parseSnapshot(FirebaseRecycler
Adapter.java:163)
at com.firebase.ui.database.FirebaseRecyclerAdapter.getItem(FirebaseRecyclerAdapter.java:152)
at com.firebase.ui.database.FirebaseRecyclerAdapter.onBindViewHolder(FirebaseRecyclerAdapter.java:195)
at android.support.v7.widget.RecyclerView$Adapter.onBindViewHolder(RecyclerView.java:6356)
at android.support.v7.widget.RecyclerView$Adapter.bindViewHolder(RecyclerView.java:6389)
at android.support.v7.widget.RecyclerView$Recycler.tryBindViewHolderByDeadline(RecyclerView.java:5335)
at android.support.v7.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:5598)
at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:5440)
at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:5436)
at android.support.v7.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:2224)
at android.support.v7.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1551)
at android.support.v7.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1511)
at android.support.v7.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:595)
at android.support.v7.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:3583)
at android.support.v7.widget.RecyclerView.dispatchLayout(RecyclerView.java:3312)
at android.support.v7.widget.RecyclerView.consumePendingUpdateOperations(RecyclerView.java:1648)
at android.support.v7.widget.RecyclerView$1.run(RecyclerView.java:343)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:767)
at android.view.Choreographer.doCallbacks(Choreographer.java:580)
at android.view.Choreographer.doFrame(Choreographer.java:549)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:753)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5319)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1016)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:811)
s'il vous plaît, aidez-moi à ce sujet.
ajoutez votre base de données s'il vous plaît –
@Lakshan Chamika Vous devez Convertissez la valeur double en chaîne lors de l'insertion des enregistrements. il suffit d'utiliser ceci ("" + votre valeur double) en insérant l'enregistrement cela résoudra votre problème. –