Я копирую всю активность ниже, findfriendsactivity.java, чтобы искать и запрашивать имя, профиль и изображение из базы данных Firebase в Android Studio после запуска приложения.Приложения перестают работать, когда я набираю и ищу имя.Приложение работало нормально до этого действия.Как я могу это исправить?
package com.example.socialnetwork.socialnetwork;
import android.content.Context;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.TextView;
import android.widget.Toast;
import com.firebase.ui.database.FirebaseRecyclerAdapter;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.Query;
import com.squareup.picasso.Picasso;
import de.hdodenhof.circleimageview.CircleImageView;
public class FindFriendsActivity extends AppCompatActivity {
private Toolbar mToolbar;
private ImageButton SearchButton;
private EditText SearchInputText;
private RecyclerView SearchResultList;
private DatabaseReference allUsersDatabaseRef;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_find_friends);
allUsersDatabaseRef = FirebaseDatabase.getInstance().getReference().child("Users");
mToolbar = (Toolbar) findViewById(R.id.find_friends_appbar_layout);
setSupportActionBar(mToolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setTitle("Find Friends");
SearchResultList = (RecyclerView) findViewById(R.id.search_result_list);
SearchResultList.setHasFixedSize(true);
SearchResultList.setLayoutManager(new LinearLayoutManager(this));
SearchButton = (ImageButton) findViewById(R.id.search_people_friends_button);
SearchInputText = (EditText) findViewById(R.id.search_box_input);
SearchButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v)
{
String searchBoxInput = SearchInputText.getText().toString();
SearchPeopleAndFriends(searchBoxInput);
}
});
}
private void SearchPeopleAndFriends(String searchBoxInput)
{
Toast.makeText(this, "Searching....", Toast.LENGTH_LONG).show();
Query searchPeopleandFriendsQuery = allUsersDatabaseRef.orderByChild("fullname")
.startAt(searchBoxInput).endAt(searchBoxInput + "\uf8ff");
FirebaseRecyclerAdapter<FindFriends, FindFriendsViewHolder> firebaseRecyclerAdapter
= new FirebaseRecyclerAdapter<FindFriends, FindFriendsViewHolder>
(
FindFriends.class,
R.layout.all_users_display_layout,
FindFriendsViewHolder.class,
searchPeopleandFriendsQuery
)
{
@Override
protected void populateViewHolder(FindFriendsViewHolder viewHolder, FindFriends model, int position) {
viewHolder.setFullName(model.getFullname());
viewHolder.setStatus(model.getStatus());
viewHolder.setProfileimage(getApplicationContext(), model.getProfileimage());
}
};
SearchResultList.setAdapter(firebaseRecyclerAdapter);
}
public static class FindFriendsViewHolder extends RecyclerView.ViewHolder
{
View mView;
public FindFriendsViewHolder(View itemView) {
super(itemView);
mView = mView;
}
public void setProfileimage(Context ctx, String profileimage) {
CircleImageView myImage = (CircleImageView) mView.findViewById(R.id.all_users_profile_image);
Picasso.with(ctx).load(profileimage).placeholder(R.drawable.profile).into(myImage);
}
public void setFullName(String fullname) {
TextView myName = (TextView) mView.findViewById(R.id.all_users_profile_full_name);
myName.setText(fullname);
}
public void setStatus(String status) {
TextView myStatus = (TextView) mView.findViewById(R.id.all_users_status);
myStatus.setText(status);
}
}
}
Теперь я копирую сообщение об ошибке, которое появляется при поиске имени в поиске друзей после запуска приложения.Приложение перестает работать и возвращается на главную.
E / AndroidRuntime: FATAL EXCEPTION: main Процесс: com.example.socialnetwork.socialvegan, PID: 9563 java.lang.NullPointerException: попытка вызвать виртуальный метод 'android.view.View android.view.View.findViewById (int) 'для ссылки на пустой объект по адресу com.example.socialnetwork.socialnetwork.FindFriendsActivity $ FindFriendsViewHolder.setFullName (FindFriendsActivity.java:118) по адресу com.example.socialnetwork.socialnetwork.FindFriendsActivityHind.IndFence.ind $ 2.Java: 88) в com.example.socialnetwork.socialnetwork.FindFriendsActivity $ 2.populateViewHolder (FindFriendsActivity.java:84) в com.firebase.ui.database.FirebaseRecyclerAdapter.onBindViewHolder (FirebaseRecyclerAdapter.java7pp.suav.su5).widget.RecyclerView $ Adapter.onBindViewHolder (RecyclerView.java:6673) в android.support.v7.widget.RecyclerView $ Adapter.bindViewHolder (RecyclerView.java:6714) в android.support.v7.widget.RecyclerView $ Recycler.derBDRecyclerView.java:5647) по адресу android.support.v7.widget.RecyclerView $ Recycler.tryGetViewHolderForPositionByDeadline (RecyclerView.java:5913) по адресу android.support.v7.widget.RecyclerView $ Recycler.getViewForPosition (RecyclerView.java:775supp.java:575supp. at and android7. At at..widget.RecyclerView $ Recycler.getViewForPosition (RecyclerView.java:5748) в android.support.v7.widget.LinearLayoutManager $ LayoutState.next (LinearLayoutManager.java:2232) в android.support.v7.widget.agerarLayMayLayMoutLayoutMayCout.java: 1559) по адресу android.support.v7.widget.LinearLayoutManager.fill (LinearLayoutManager.java:1519) по адресу android.support.v7.widget.LinearLayoutManager.onLayoutChildren (LinearLayoutManager.java:6supp.vava:6supp.widget.RecyclerView.dispatchLayoutStep2 (RecyclerView.java:3812) в android.support.v7.widget.RecyclerView.dispatchLayout (RecyclerView.java:3529) в android.support.v7.widget.RecyclerView.consumePendingUpateUp для использования в качестве агентана android.support.v7.widget.RecyclerView $ 1.run (RecyclerView.java: 356) на android.view.Choreographer $ CallbackRecord.run (Choreographer.java:858) на android.view.Choreographer.doCallbacks (Choreographer.java:670) на android.view.Choreographer.doFrame (Хореограф: Хореограф:603) на android.view.Choreographer $ FrameDisplayEventReceiver.run (Choreographer.java:844) на android.os.Handler.handleCallback (Handler.java:739) на android.os.Handler.dispatchMessage (Handler.java:95) наandroid.os.Looper.loop (Looper.java:148) на android.app.ActivityThread.main (ActivityThread.java:5476) на java.lang.reflect.Method.invoke (собственный метод) на com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:726) в com.android.internal.os.ZygoteInit.main (ZygoteInit.java:616)I / Process: отправка сигнала.PID: 9563 SIG: 9 Приложение прекращено.
Возможно, кто-то может найти решение этой проблемы.Все build.gradle выглядит нормально.Я не вижу никакой ошибки.Я новичок в базе данных Firebase.Может быть ошибка при запросе базы данных firebase.