Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 搜索选项-populateViewHolder问题-如何修复_Java_Database_Firebase_Search - Fatal编程技术网

Java 搜索选项-populateViewHolder问题-如何修复

Java 搜索选项-populateViewHolder问题-如何修复,java,database,firebase,search,Java,Database,Firebase,Search,我想在我的应用程序中使用Firebase数据库的搜索选项。。我从youtube上看了一段视频。。但根据描述,他们给出了代码。。我下载并使用了所有的错误,但我已经修复了,但这些天populateViewHolder不工作。。。。但是代码已经普及了ViewHolder。。。我在这里给出代码。。请帮我修一下。。。 请给我准确的密码。。并提到u r编辑哪个java类。。。该类的完整代码 这是搜索活动 } 我也曾经遇到过这个问题,但我能够通过使用变量初始化您的linearlayoutmanager来解决它

我想在我的应用程序中使用Firebase数据库的搜索选项。。我从youtube上看了一段视频。。但根据描述,他们给出了代码。。我下载并使用了所有的错误,但我已经修复了,但这些天populateViewHolder不工作。。。。但是代码已经普及了ViewHolder。。。我在这里给出代码。。请帮我修一下。。。 请给我准确的密码。。并提到u r编辑哪个java类。。。该类的完整代码

这是搜索活动

}


我也曾经遇到过这个问题,但我能够通过使用变量初始化您的linearlayoutmanager来解决它,如--linearlayoutmanager layoutmanager=new linearlayoutmanager this--并确保添加--adapter.startListening--或将lifeCycler设置为您的firebase选项。。,。。。 我还建议您使用algolia搜索子字符串以获得更好的搜索结果,因为firebase还没有这样的功能

package com.qoutes.martins.myqoutes;

import android.content.Context;
import android.os.Bundle;
import androidx.recyclerview.widget.RecyclerView;
import android.view.View;
import android.view.ViewGroup;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.LinearLayoutManager;

import com.bumptech.glide.Glide;
import com.firebase.ui.database.FirebaseRecyclerAdapter;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.Query;

public class SearchActivity extends AppCompatActivity {

    private EditText mSearchField;
    private ImageButton mSearchBtn;

    private RecyclerView mResultList;

    private DatabaseReference mUserDatabase;

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

        mUserDatabase = FirebaseDatabase.getInstance().getReference("Users");


        mSearchField = (EditText) findViewById(R.id.search_field);
        mSearchBtn = (ImageButton) findViewById(R.id.search_btn);

        mResultList = (RecyclerView) findViewById(R.id.result_list);
        mResultList.setHasFixedSize(true);
        mResultList.setLayoutManager(new LinearLayoutManager(this));

        mSearchBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                String searchText = mSearchField.getText().toString();
                firebaseUserSearch(searchText);
            }
        });

    }

    private void firebaseUserSearch(String searchText) {

        Toast.makeText(SearchActivity.this, "Started Search", Toast.LENGTH_LONG).show();

        Query firebaseSearchQuery = mUserDatabase.orderByChild("name").startAt(searchText).endAt(searchText + "\uf8ff");

        FirebaseRecyclerAdapter<Users, UsersViewHolder> firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<Users, UsersViewHolder>(

                Users.class,
                R.layout.list_layout,
                UsersViewHolder.class,
                firebaseSearchQuery

        ) {
            @NonNull
            @Override
            public UsersViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
                return null;
            }

            @Override
            protected void onBindViewHolder(@NonNull UsersViewHolder holder, int position, @NonNull Users model) {

            }

            @Override
            protected void populateViewHolder(UsersViewHolder viewHolder, Users model, int position) {
                viewHolder.setDetails(getApplicationContext(), model.getName(), model.getStatus(), model.getImage());

            }
        };

        mResultList.setAdapter(firebaseRecyclerAdapter);

    }


    // View Holder Class

    public static class UsersViewHolder extends RecyclerView.ViewHolder {

        View mView;

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

            mView = itemView;

        }

        public void setDetails(Context ctx, String userName, String userStatus, String userImage){

            TextView user_name = (TextView) mView.findViewById(R.id.name_text);
            TextView user_status = (TextView) mView.findViewById(R.id.status_text);
            ImageView user_image = (ImageView) mView.findViewById(R.id.profile_image);


            user_name.setText(userName);
            user_status.setText(userStatus);

            Glide.with(ctx).load(userImage).into(user_image);


        }

    }
public String name, image, status;

public Users(){

}

public String getName() {
    return name;
}

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

public String getImage() {
    return image;
}

public void setImage(String image) {
    this.image = image;
}

public String getStatus() {
    return status;
}

public void setStatus(String status) {
    this.status = status;
}

public Users(String name, String image, String status) {
    this.name = name;
    this.image = image;
    this.status = status;
}

**Thanks  In Advance **

***If You Say Me To Change Code Then Kindly Give Me Full Set Of Code***