안드로이드와 파이어베이스 연결하여 바코드 촬영 시, 해당 바코드 내용을 출력하는 코드를 작성하고 있습니다. 코드상의 밑줄은 없지만 E/RecyclerView: No adapter attached; skipping layout 오류가 나옵니다 어떻게 수정해야할지 알려주세요 ㅠㅠ
ScanItemsActivity.java
public class ScanItemsActivity extends AppCompatActivity {
public static EditText resultsearcheview;
private FirebaseAuth firebaseAuth;
ImageButton scantosearch;
Button searchbtn;
RecyclerView mrecyclerview;
DatabaseReference mdatabaseReference;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_scan_items);
firebaseAuth = FirebaseAuth.getInstance();
mdatabaseReference= FirebaseDatabase.getInstance().getReference("Items");
resultsearcheview = findViewById(R.id.searchfield);
scantosearch = findViewById(R.id.imageButtonsearch);
searchbtn = findViewById(R.id.searchbtnn);
mrecyclerview = findViewById(R.id.recyclerViews);
LinearLayoutManager manager = new LinearLayoutManager(this);
mrecyclerview.setLayoutManager(manager);
mrecyclerview.setHasFixedSize(true);
mrecyclerview.setLayoutManager(new LinearLayoutManager(this));
scantosearch.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(getApplicationContext(), ScanCodeActivitysearch.class));
}
});
searchbtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String searchtext = resultsearcheview.getText().toString();
firebasesearch(searchtext);
}
});
}
private void firebasesearch(String searchtext) {
Query firebaseSearchQuery = mdatabaseReference.orderByChild("itembarcode").startAt(searchtext).endAt(searchtext + "\uf8ff");
FirebaseRecyclerOptions<Items> options =
new FirebaseRecyclerOptions.Builder<Items>()
.setQuery(firebaseSearchQuery, Items.class)
.build();
FirebaseRecyclerAdapter firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<Items, UsersViewHolder>(options) {
@Override
protected void onBindViewHolder(@NonNull UsersViewHolder viewHolder, int position, @NonNull Items model) {
viewHolder.setDetails(getApplicationContext(), model.getItembarcode(), model.getItemcategory(), model.getItemname(), model.getItemprice());
}
@Override
public UsersViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_layout,parent,false);
return new UsersViewHolder(view);
}
};
mrecyclerview.setAdapter(firebaseRecyclerAdapter);
firebaseRecyclerAdapter.startListening();
}
public static class UsersViewHolder extends RecyclerView.ViewHolder {
View mView;
public UsersViewHolder(View itemView) {
super(itemView);
mView = itemView;
}
public void setDetails(Context ctx, String itembarcode, String itemcategory, String itemname, String itemprice) {
TextView item_barcode = (TextView) mView.findViewById(R.id.viewitembarcode);
TextView item_name = (TextView) mView.findViewById(R.id.viewitemname);
TextView item_category = (TextView) mView.findViewById(R.id.viewitemcategory);
TextView item_price = (TextView) mView.findViewById(R.id.viewitemprice);
item_barcode.setText(itembarcode);
item_category.setText(itemcategory);
item_name.setText(itemname);
item_price.setText(itemprice);
}
}
}
list_layout.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/viewitembarcodename"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Item Barcode"/>
<TextView
android:id="@+id/viewitembarcode"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_toEndOf="@+id/viewitembarcodename"
android:text="TextView" />
<TextView
android:id="@+id/viewitemnamename"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Item Name" />
<TextView
android:id="@+id/viewitemname"
android:layout_toEndOf="@+id/viewitemnamename"
android:text="TextView" />
<TextView
android:id="@+id/viewitempricename"
android:text="Item Price $" />
<TextView
android:id="@+id/viewitemprice"
android:layout_toEndOf="@+id/viewitempricename"
android:text="TextView" />
<TextView
android:id="@+id/viewitemcategoryname"
android:text="Item Category" />
<TextView
android:id="@+id/viewitemcategory"
android:layout_toEndOf="@+id/viewitemcategoryname"
android:text="TextView" />
</RelativeLayout>
</androidx.cardview.widget.CardView>
<activity_scanitems.xml>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".Barcode.ScanItemsActivity"
android:orientation="vertical">
<TextView
android:id="@+id/textView"
android:gravity="center"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="ScanItems"/>
<LinearLayout
android:orientation="vertical"
android:layout_weight="1"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:id="@+id/imageButtonsearch"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="바코드 스캔하기"
android:layout_gravity="center"
tools:ignore="VectorDrawableCompat" />
<EditText
android:id="@+id/searchfield"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:ems="10"
android:hint="Search Items"
android:inputType="textPersonName"
android:textAlignment="center"
android:textColor="#fff"
android:textColorHint="#F7F2F2"/>
<Button
android:layout_marginTop="10dp"
android:layout_width="150dp"
android:id="@+id/searchbtnn"
android:layout_gravity="center"
android:text="검색하기"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="200dp">
<androidx.recyclerview.widget.RecyclerView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/recyclerViews">
</androidx.recyclerview.widget.RecyclerView>
</LinearLayout>
</LinearLayout>