- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 fragment ,其中我使用 RecyclerView 显示了来自 Firebase DB 的所有对象。在同一个 fragment 中,我有一个 EditText。
目标:用户可以在 Firebase 数据库中进行搜索。搜索结果应填充到同一个 RecyclerView 中,其中最初显示了数据库中的所有对象。为此,我使用 FirebaseRecyclerAdapter,它由 FirebaseUI Version 3.2.2 提供。为了达到这个结果,我遵循了这个 YouTube 教程 https://www.youtube.com/watch?v=b_tz8kbFUsU .
问题:结果不显示,搜索功能不工作。
这是我的代码。
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
final Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_best_buys, container, false);
recView = view.findViewById(R.id.fragment_best_buys_recycler_view_two);
databaseReference = FirebaseDatabase.getInstance().getReference(Database_Path);
// Edit Text Listener
mEditText = view.findViewById(R.id.fragment_best_buys_edit_text);
Button test = view.findViewById(R.id.faccia_search);
test.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String searchText = mEditText.getText().toString();
firebaseUserSearch(searchText);
}
});
return view;
}
private void firebaseUserSearch(String searchText) {
System.out.print("I am searching: " + searchText);
Toast.makeText(getActivity(), "Started Search " + searchText, Toast.LENGTH_LONG).show();
Query firebaseSearchQuery = databaseReference.orderByChild("product_name")
.startAt(searchText)
.endAt(searchText + "\uf8ff");
FirebaseRecyclerOptions<BestBuysProducts> options =
new FirebaseRecyclerOptions.Builder<BestBuysProducts>()
.setQuery(firebaseSearchQuery, BestBuysProducts.class)
.build();
FirebaseRecyclerAdapter<BestBuysProducts, BestBuysViewHolder> adapter = new FirebaseRecyclerAdapter<BestBuysProducts, BestBuysViewHolder>(options) {
@Override
public BestBuysViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_best_buys, parent, false);
return new BestBuysViewHolder(view);
}
@Override
protected void onBindViewHolder(@NonNull BestBuysViewHolder holder, int position, @NonNull BestBuysProducts model) {
holder.setDetails(getContext(), model.getProduct_name());
}};
recView.setLayoutManager(new LinearLayoutManager(getContext()));
recView.setAdapter(adapter);
}
查看持有者类
public static class BestBuysViewHolder extends RecyclerView.ViewHolder {
View mView;
public BestBuysViewHolder(View itemView) {
super(itemView);
mView = itemView;
}
public void setDetails(final Context ctx, final String productName) {
TextView titleTextView = itemView.findViewById(R.id.item_best_buys_title);
titleTextView.setText(productName);
}
谢谢!
最佳答案
private void firebaseUserSearch(String searchText) {
/*Toast.makeText(AllUserActivity.this, "Started Search", Toast.LENGTH_LONG).show();*/
progressBar.setVisibility(View.VISIBLE);
Query firebaseSearchQuery = mUserDatabase.orderByChild("name").startAt(searchText).endAt(searchText + "\uf8ff");
//set Options
FirebaseRecyclerOptions<Users> options =
new FirebaseRecyclerOptions.Builder<Users>()
.setQuery(firebaseSearchQuery, Users.class)
.setLifecycleOwner(this)
.build();
adapter = new FirebaseRecyclerAdapter<Users, UserviewHolder>(options) {
@Override
protected void onBindViewHolder(@NonNull UserviewHolder holder, int position, @NonNull Users model) {
holder.setNama(model.getName());
holder.setstatus(model.getAddress());
holder.setMcCircleImageView(model.getThumb_image());
progressBar.setVisibility(View.GONE);
final String user_id = getRef(position).getKey();
holder.mView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (!user_id.equals(FirebaseAuth.getInstance().getCurrentUser().getUid())){
Intent i = new Intent(AllUserActivity.this, ProfilActivity.class);
i.putExtra("user_id", user_id);
startActivity(i);
}else {
Intent i = new Intent(AllUserActivity.this, AcountSettings.class);
i.putExtra("user_id", user_id);
startActivity(i);
}
}
});
}
@NonNull
@Override
public UserviewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View mView = LayoutInflater.from(parent.getContext()).inflate(R.layout.user_singgle_layout, parent, false);
return new UserviewHolder(mView);
}
};
mListView.setAdapter(adapter);
}
private void closeKeyboard(){
View view = this.getCurrentFocus();
if (view != null){
InputMethodManager inputMethodManager = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
if (inputMethodManager != null) {
inputMethodManager.hideSoftInputFromInputMethod(view.getWindowToken(), 0);
}
}
}
@Override
protected void onStart() {
super.onStart();
//important for fibrebase database ui
adapter.startListening();
}
@Override
protected void onStop() {
super.onStop();
//important for fibrebase database ui
adapter.stopListening();
}
//VIEW HOLDER
public class UserviewHolder extends RecyclerView.ViewHolder {
View mView;
TextView mdisplayname,mstatus ;
CircleImageView mcCircleImageView;
public UserviewHolder(View itemView) {
super(itemView);
mView = itemView;
mdisplayname = (TextView) mView.findViewById(R.id.user_singgle_name);
mstatus = (TextView) mView.findViewById(R.id.user_single_status);
mcCircleImageView = (CircleImageView) mView.findViewById(R.id.profil_single_layout);
}
public void setNama(String display_name){
mdisplayname.setText(display_name);
}
public void setstatus(String status){
mstatus.setText(status);
}
public void setMcCircleImageView(final String img_uri){
//Picasso.with(UsersActivity.this).load(img_uri).placeholder(R.drawable.user).into(mcCircleImageView);
if (!img_uri.equals("default")){
Picasso.with(AllUserActivity.this).load(img_uri).networkPolicy(NetworkPolicy.OFFLINE)
.placeholder(R.drawable.default_avatar).into(mcCircleImageView, new Callback() {
@Override
public void onSuccess() {
}
@Override
public void onError() {
Picasso.with(AllUserActivity.this).load(img_uri).placeholder(R.drawable.default_avatar).into(mcCircleImageView);
}
});
}else{
Picasso.with(AllUserActivity.this).load(R.drawable.default_avatar).into(mcCircleImageView);
}
}
}
关于android - 使用 FirebaseRecyclerAdapter 进行 Firebase 搜索(Firebase UI 3.2.2),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49071905/
谁能告诉我那一行的错误是什么。 这是显示的错误消息。 package com.example.souravkumar.sqaurewallpapers; import android.os.Bundl
谁能告诉我那一行的错误是什么。 这是显示的错误消息。 package com.example.souravkumar.sqaurewallpapers; import android.os.Bundl
这个问题已经有答案了: firebaserecycleradapter() cannot be applied to FirebaseRecyclerAdapter (5 个回答) 已关闭 4 年前。
这个问题已经有答案了: firebaserecycleradapter() cannot be applied to FirebaseRecyclerAdapter (5 个回答) 已关闭 3 年前。
谁能告诉我错误是什么 enter image description here 这是我的代码 package com.andisofttechnology.myapplication.Model; i
即使在 gradle 依赖项中添加 firebase ui 后,我在尝试使用它时也无法解析 FirebaseRecyclerAdapter。提前致谢 最佳答案 我遇到了同样的问题,通过在 build.
我是 Android 编程新手。我已经能够在 firebase 中创建用户配置文件表,并且可以在 recyclerview 中显示用户配置文件表中的用户数据,但我无法让名为“Arbrg”的产品表在 f
这个问题已经有答案了: What is a NullPointerException, and how do I fix it? (12 个回答) 已关闭 4 年前。 我的应用程序在登录后立即崩溃,并
FirebaseRecyclerAdapter - populateViewHolder 第一次运行时没有填充数据,但是当我关闭应用程序并打开它时,数据绑定(bind)在 RecyclerView 中
我为单个项目创建了一个模型类和布局,然后创建了 View 持有者和 firebaseRecyclerAdapter,如下面的代码所示,当我运行它时出现了这个错误 com.google.
我有一个连接到 Firebase 的应用程序。我想用来自 firebase 的数据填充 recyclerview。在此之前,我制作了一个应用程序并且运行良好。现在我使用相同的方法,当我说 adapte
我正在使用 Firebase 创建一个聊天应用。我正在使用来自 firebase-ui 的 recycleView 和 FirebaseRecyclerAdapter 来显示所有消息。我的问题是当有人
@Override public void onStart() { super.onStart(); FirebaseRecyclerAdapter firebaseRecyclerA
我正在使用 FirebaseRecyclerAdapter(FirebaseUI 的一部分)将 Firebase 数据加载到 RecyclerView 中,但是在文档或在线的任何地方我都找不到检测它是
我需要父键及其子键来表示 RecyclerView 中的纬度和经度列表。我想我需要对 FirebaseRecyclerAdapter 内的 populateViewHolder 中的 LatLngsM
这个问题已经有答案了: FirebaseListAdapter not pushing individual items for chat app - Firebase-Ui 3.1 (2 个回答)
代码: FirebaseRecyclerOptions options = new FirebaseRecyclerOptions.Builder()
目前还不清楚如何使用自定义查询填充 FirebaseRecyclerAdapter。 定义一个引用。此处:DatabaseReference ref = mDatabase.getReference(
我的标题有点难以理解,但基本上当我将项目添加到我的数据库时,它应该显示在 RecyclerView 中。现在在我的 RecyclerView 中我有两个布局,但问题是我的数据库的第一项在我的其他布局中
浏览 Firebase Android 友好聊天代码实验室 - https://codelabs.developers.google.com/codelabs/firebase-android/ -
我是一名优秀的程序员,十分优秀!