0

MaintActivityRecyclerview не удалось получить данные из Firebase DB

package com.finn.aroundu; 

import android.content.Intent; 
import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 
import android.support.v7.widget.LinearLayoutManager; 
import android.support.v7.widget.RecyclerView; 
import android.support.v7.widget.Toolbar; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.view.View; 
import android.widget.TextView; 
import com.firebase.ui.database.FirebaseRecyclerAdapter; 
import com.google.firebase.database.DataSnapshot; 
import com.google.firebase.database.DatabaseError; 
import com.google.firebase.database.DatabaseReference; 
import com.google.firebase.database.FirebaseDatabase; 

public class MainActivity extends AppCompatActivity { 


RecyclerView recyclerView; 
private RecyclerView mPostList; 
private DatabaseReference mDatabase; 




@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    mDatabase= FirebaseDatabase.getInstance().getReference(); 

    Toolbar mToolbar = (Toolbar) findViewById(R.id.toolbar); 
    setSupportActionBar(mToolbar); 
    getSupportActionBar().setDisplayShowTitleEnabled(false); 

    mPostList = (RecyclerView) findViewById(R.id.post_list); 
    mPostList.setHasFixedSize(true); 
    if(recyclerView != null) { 
     mPostList.setLayoutManager(new LinearLayoutManager(this)); 
    } 





     } 

@Override 
protected void onStart() { 
    super.onStart(); 

    FirebaseRecyclerAdapter<Location_data,PostViewHolder> firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<Location_data, PostViewHolder>(

      Location_data.class, 
    R.layout.recycler_adpater, 
    PostViewHolder.class, 
      mDatabase 



    ) { 
     @Override 
     protected void populateViewHolder(PostViewHolder viewHolder, Location_data model, int position) { 

      viewHolder.setName(model.getName()); 
      viewHolder.setCaption(model.getCaption()); 
      viewHolder.setLocation(model.getLocation()); 
     } 
    }; 
    mPostList.setAdapter(firebaseRecyclerAdapter); 


} 

public static class PostViewHolder extends RecyclerView.ViewHolder { 

    View mView; 

    public PostViewHolder(View itemView) { 
     super(itemView); 

     itemView= mView; 


    } 

    public void setName(String name){ 
     TextView info_text = (TextView) mView.findViewById(R.id.info_text); 
     info_text.setText(name); 

    } 

    public void setCaption(String caption){ 

     TextView info_text2=(TextView) mView.findViewById(R.id.info_text2); 
     info_text2.setText(caption); 

    } 

    public void setLocation(String location){ 

     TextView info_text3 = (TextView)mView.findViewById(R.id.info_text3); 
     info_text3.setText(location); 
    } 


} 


public boolean onCreateOptionsMenu(final Menu menu) { 
    getMenuInflater().inflate(R.menu.menu_main, menu); 

    return super.onCreateOptionsMenu(menu); 

} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    if(item.getItemId()==R.id.add){ 
     startActivity(new Intent(MainActivity.this,post.class)); 


    } 


    return super.onOptionsItemSelected(item); 
} 
} 

Location_Activity (метод)

package com.finn.aroundu; 

/** 
* Created by Sagar on 1/31/2017. 
*/ 

public class Location_data { 



private String Name; 
private String Location; 
private String Caption; 

public Location_data(){ 

} 

public Location_data(String Location, String Name, String Caption) { 
    this.Location = Location; 
    this.Name = Name; 
    this.Caption = Caption; 
} 

public String getCaption() { 
    return Caption; 
} 

public void setCaption(String Caption) { 
    this.Caption = Caption; 
} 

public String getLocation() { 
    return Location; 
} 

public void setLocation(String Location) { 
    this.Location = Location; 
} 

public String getName() { 
    return Name; 
} 

public void setName(String Name) { 
    this.Name = Name; 
} 
} 

Я делаю простое приложение для извлечения данных из моей firebase БД и отображение это на RecyclerView, но данные вообще не извлекаются. Результат - это просто пустая деятельность. Я новичок в разработке приложений, и я думаю, что сделал какую-то глупую ошибку. Пожалуйста, укажите мою ошибку.

CRASH LOG:

com.google.firebase.database.DatabaseException: Can't convert object of type java.lang.String to type com.finn.aroundu.Location_data 

Есть исправление: У меня было много основных вопросов в моем коде, я случайно забыл закодировать деятельность из блога, откуда я обозначаемого. Спасибо всем, ребята!

+0

Можете ли вы пометить некоторые эксперты? –

ответ

0

Как и исключение, вы возвращаете ответный ответ json. Вам нужно преобразовать в объект

https://www.learnhowtoprogram.com/android/data-persistence/firebase-recycleradapter

+0

Можете ли вы рассказать о том, как преобразовать строку json в объект? Я не совсем понял ссылку, которую вы дали. Извините за недостаток знаний. –

0

проверить ссылку на вашу базу данных в строке:

mDatabase= FirebaseDatabase.getInstance().getReference(); 
+0

Я добавил «Сообщение» в ссылке, но все же это было бесполезно. –