0 Daumen
452 Aufrufe

Hallo Community,

ich arbeite an der Möglichkeit per Suche Nutzer anzeigen zu lassen, vergleichbar wie bei allen Sozial Plattformen.
Aber es zeigt mir einfach alle Nutzer an. Egal, welcher Buchstabe, alle Nutzer werden angezeigt und ich verstehe nicht wieso, weshalb.

Ich möchte lediglich, dass Nutzer eingeblendet werden sollen, die genau die, i.d. Suche, eingetippten Buchstaben enthält.

Leider ist das Tutorial etwas Veraltet und Android Studio erhielt Updates, weshalb sein Code nicht mehr funktioniert.
Ob mir eventuell genau ein ähnliches Codeteil, wie dieser fehlt, weshalb es nicht so funktioniert, wie ich will?

Query searchFriendsQuery = allUsersDatabaseRef.orderByChild("username")
.startAt(searchBoxInput).endAt(searchBoxInput + "\uf8ff);

Wie löse ich es aber mit meinem Code, der Obere Teil funktioniert nicht mehr.

Mein Code für diese Activity:



public class FindFriends {

    public String profileimage, username, fullname;

    public FindFriends() {
    }

    public FindFriends(String profileimage, String username, String fullname) {
        this.profileimage = profileimage;
        this.username = username;
        this.fullname = fullname;
    }

    public String getProfileimage() {
        return profileimage;
    }

    public void setProfileimage(String profileimage) {
        this.profileimage = profileimage;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getFullname() {
        return fullname;
    }

    public void setFullname(String fullname) {
        this.fullname = fullname;
    }
}

import android.content.Intent;
import android.support.annotation.NonNull;
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.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.TextView;

import com.firebase.ui.database.FirebaseRecyclerAdapter;
import com.firebase.ui.database.FirebaseRecyclerOptions;
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;

    public ImageButton SearchButton;
    public 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 = findViewById(R.id.find_friends_bar_layout);
        setSupportActionBar(mToolbar);
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        getSupportActionBar().setDisplayShowTitleEnabled(false);

        SearchResultList = findViewById(R.id.search_result_list);
        SearchResultList.setHasFixedSize(true);
        SearchResultList.setLayoutManager(new LinearLayoutManager(this));

        SearchButton = findViewById(R.id.search_people_friends_button);
        SearchInputText = 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) {

        FirebaseRecyclerOptions<FindFriends> options = new FirebaseRecyclerOptions.Builder<FindFriends>().
                setQuery(allUsersDatabaseRef, FindFriends.class).build();

        FirebaseRecyclerAdapter<FindFriends, FindFriendsActivity.FindFriendsViewHolder> adapter = new FirebaseRecyclerAdapter<FindFriends, FindFriendsViewHolder>(options) {
            @Override
            protected void onBindViewHolder(@NonNull FindFriendsActivity.FindFriendsViewHolder holder, int position, @NonNull FindFriends model) {

                final String PostKey = getRef(position).getKey();
                holder.username.setText(model.getUsername());
                holder.fullname.setText(model.getFullname());

                Picasso.get().load(model.getProfileimage()).into(holder.profileimage);

                holder.itemView.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {

                        Intent findFriendsIntent = new Intent(FindFriendsActivity.this, FindFriendsActivity.class);
                        findFriendsIntent.putExtra("PostKey", PostKey);
                        startActivity(findFriendsIntent);
                    }
                });
            }

            @NonNull
            @Override
            public FindFriendsActivity.FindFriendsViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {

                View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.all_users_display_layout, viewGroup, false);

                FindFriendsActivity.FindFriendsViewHolder viewHolder = new FindFriendsActivity.FindFriendsViewHolder(view);
                return viewHolder;
            }
        };

        SearchResultList.setAdapter(adapter);
        adapter.startListening();
    }

    public static class FindFriendsViewHolder extends RecyclerView.ViewHolder {

        TextView username, fullname;
        CircleImageView profileimage;

        public FindFriendsViewHolder(@NonNull View itemView) {
            super(itemView);

            username = itemView.findViewById(R.id.all_users_profile_username);
            fullname = itemView.findViewById(R.id.all_users_fullname);
            profileimage = itemView.findViewById(R.id.all_users_profile_image);

        }
    }


}
 
Avatar von

Ein anderes Problem?

Stell deine Frage

Ähnliche Fragen

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community