Java recyclerView中的错误
有人能检查一下里面有没有错误吗。这是我的代码,如果代码有错误请告诉我?我不知道如何修复代码Search.java 在我的RecyclerItemClickListener.java中Java recyclerView中的错误,java,android,android-recyclerview,Java,Android,Android Recyclerview,有人能检查一下里面有没有错误吗。这是我的代码,如果代码有错误请告诉我?我不知道如何修复代码Search.java 在我的RecyclerItemClickListener.java中 public interface RecyclerItemClickListener { void onItemClick(int position); } 我的适配器HierAdapter.java public class HireAdapter extends RecyclerView.Adapter
public interface RecyclerItemClickListener {
void onItemClick(int position);
}
我的适配器HierAdapter.java
public class HireAdapter extends RecyclerView.Adapter<HireAdapter.ViewHolder>{
private ArrayList<HireItem> TeacherItemList;
private Context context;
private RecyclerItemClickListener itemClickListener;
public HireAdapter(Context c, ArrayList<HireItem> teacherItemList, RecyclerItemClickListener listener) {
TeacherItemList = teacherItemList;
context = c;
itemClickListener = listener;
}
public static class ViewHolder extends RecyclerView.ViewHolder{
public final TextView nameText, subjectText,levelText ,cityText;
public ViewHolder(View itemView) {
super(itemView);
nameText = (TextView)itemView.findViewById(R.id.result_name);
subjectText = (TextView)itemView.findViewById(R.id.result_subject);
levelText = (TextView)itemView.findViewById(R.id.result_level);
cityText = (TextView)itemView.findViewById(R.id.result_city);
}
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View rowView = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_item_teachers,parent,false);
final ViewHolder viewHolder = new ViewHolder(rowView);
rowView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
itemClickListener.onItemClick(viewHolder.getLayoutPosition());
}
});
return viewHolder;
}
@Override
public void onBindViewHolder(final ViewHolder holder, final int position) {
holder.nameText.setText(TeacherItemList.get(position).getResult_name());
holder.subjectText.setText(TeacherItemList.get(position).getResult_subject());
holder.levelText.setText(TeacherItemList.get(position).getResult_level());
holder.cityText.setText(TeacherItemList.get(position).getResult_city());
//Here it is simply write onItemClick listener here
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Context context = v.getContext();
Intent intent = new Intent(context, ProfileTeaAdapter.class);
context.startActivity(intent);
}
});
}
@Override
public void onAttachedToRecyclerView(RecyclerView recyclerView) {
super.onAttachedToRecyclerView(recyclerView);
}
@Override
public int getItemCount() {
return TeacherItemList.size();
}}
公共类HireAdapter扩展了RecyclerView.Adapter{
私有ArrayList TeacherItemList;
私人语境;
私有回收器项ClickListener项ClickListener;
公共HireAdapter(上下文c、ArrayList teacherItemList、RecyclerItemClickListener侦听器){
TeacherItemList=TeacherItemList;
上下文=c;
itemClickListener=监听器;
}
公共静态类ViewHolder扩展了RecyclerView.ViewHolder{
公共最终文本查看名称文本、主题文本、级别文本、城市文本;
公共视图持有者(视图项视图){
超级(项目视图);
nameText=(TextView)itemView.findViewById(R.id.result\u name);
subjectText=(TextView)itemView.findViewById(R.id.result\u subject);
levelText=(TextView)itemView.findViewById(R.id.result\u level);
cityText=(TextView)itemView.findViewById(R.id.result\u city);
}
}
@凌驾
public ViewHolder onCreateViewHolder(视图组父级,int-viewType){
View rowView=LayoutInflater.from(parent.getContext()).flate(R.layout.list\u item\u教师,家长,false);
最终视窗夹持器视窗夹持器=新视窗夹持器(行视图);
rowView.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
itemClickListener.onItemClick(viewHolder.getLayoutPosition());
}
});
返回视图持有者;
}
@凌驾
公共无效onBindViewHolder(最终视图持有人,最终整型位置){
holder.nameText.setText(TeacherItemList.get(position.getResult_name());
holder.subjectText.setText(TeacherItemList.get(position.getResult_subject());
holder.levelText.setText(TeacherItemList.get(position.getResult_level());
holder.cityText.setText(TeacherItemList.get(position.getResult_city());
//这里只需在这里编写McClick侦听器
holder.itemView.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
Context=v.getContext();
意向意向=新意向(上下文,ProfileTeaAdapter.class);
背景。开始触觉(意图);
}
});
}
@凌驾
附加ToRecyclerView(RecyclerView RecyclerView)上的公共无效{
super.onAttachedToRecyclerView(recyclerView);
}
@凌驾
public int getItemCount(){
返回TeacherItemList.size();
}}
在Search.java中,我在每个错误处都写下了注释。因为我不知道如何更正一些代码来使用HireAdapter和RecyclerItemClickListener,有人能解决这个错误吗
public class Search extends Fragment implements RecyclerItemClickListener {
private Context context;
private RecyclerView recyclerView;
private DatabaseReference databaseReference;
private FirebaseAuth firebaseAuth;
private List<HireItem> hireItem = new ArrayList<>();
HireAdapter mAdapter;
ImageView bt_search;
ProgressDialog progressDialog;
Spinner spinner_sort;
String key = "req_skill1";
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.activity_search,container,false);
//Getting FireBase Instance
firebaseAuth = FirebaseAuth.getInstance();
databaseReference = FirebaseDatabase.getInstance().getReference("teachers");
//Getting id of Views
RecyclerView recyclerView = (RecyclerView) view.findViewById(R.id.rv_places);
recyclerView.setAdapter(mAdapter);
//
bt_search = (ImageView)view.findViewById(R.id.bt_search);
spinner_sort = (Spinner)view.findViewById(R.id.spinner_sort);
setupSpinner();
List<HireItem> hireItem = new ArrayList<>();
mAdapter = new HireAdapter(getContext(),R.layout.list_item_teachers,hireItem); // error at (getContext(),R.layout.list_item_teachers,hireItem)
bt_search.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(mAdapter != null){
mAdapter.clear(); // error at .clear();
}
progressDialog = new ProgressDialog(getContext());
progressDialog.setMessage("Searching Teachers");
progressDialog.show();
FirebaseDatabase.getInstance().getReference("teachers").orderByChild("subject").startAt(key).endAt(key + "~")
.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
Teachers child = dataSnapshot.getValue(Teachers.class);
HireItem hireItem = new HireItem(child.teaname, child.city, child.subject, child.level, child.sex,child.mobile, child.qualification, child.skill1, child.experince, child.salary,child.age);
mAdapter.add(hireItem); // error at .add
progressDialog.dismiss();
if(mAdapter == null){
Toast.makeText(getContext(), "No Match Found", Toast.LENGTH_SHORT).show();
}
}
@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onChildRemoved(DataSnapshot dataSnapshot) {
}
@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
if(mAdapter == null){
Toast.makeText(getContext(), "No Match Found", Toast.LENGTH_SHORT).show();
}
else{
recyclerView.setAdapter(mAdapter); // error at recyclerView
}
}
});
return view;
}
private void setupSpinner(){
ArrayAdapter adapter = ArrayAdapter.createFromResource(getContext(),R.array.array_teacher_sort,
android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);
spinner_sort.setAdapter(adapter);
spinner_sort.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
key = (String)adapterView.getItemAtPosition(i);
if(key.equals(getString(R.string.sort_A))){
key = "Math";
}else if(key.equals(getString(R.string.sort_AA))){
key = "computer";
}
else if(key.equals(getString(R.string.sort_AB))){
key = "Biology";
}
else if(key.equals(getString(R.string.sort_AD))){
key = "Physics";
}
else if(key.equals(getString(R.string.sort_AXX))){
key = "Holy Quran";
}
else if(key.equals(getString(R.string.sort_AZ))){
key = "Chysics";
}
else if(key.equals(getString(R.string.sort_AS))){
key = "English";
}
else if(key.equals(getString(R.string.sort_AQ))){
key = "Arabic";
}
else if(key.equals(getString(R.string.sort_ADD))){
key = "Science";
}
else if(key.equals(getString(R.string.sort_AE))){
key = "History";
}
else if(key.equals(getString(R.string.sort_AW))){
key = "Geograpghy";
}
else if(key.equals(getString(R.string.sort_AR))){
key = "Art education";
}
else if(key.equals(getString(R.string.sort_AT))){
key = "Family education";
}
else if(key.equals(getString(R.string.sort_aae))){
key = "Religion";
}
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
}
});
}
@Override
public void onResume() {
super.onResume();
mAdapter.clear(); // error at .clear();
}
@Override
public void onItemClick(int position) {
} }
公共类搜索扩展片段实现RecyclerItemClickListener{
私人语境;
私人回收站;
私有数据库参考数据库参考;
私有FirebaseAuth FirebaseAuth;
private List hireItem=new ArrayList();
HireAdapter mAdapter;
ImageView bt_搜索;
进行对话进行对话;
微调器微调器_排序;
字符串key=“req_skill1”;
@可空
@凌驾
创建视图时的公共视图(LayoutFlater充气机、@Nullable ViewGroup容器、@Nullable Bundle savedInstanceState){
视图=充气机。充气(R.布局。活动搜索,容器,错误);
//获取FireBase实例
firebaseAuth=firebaseAuth.getInstance();
databaseReference=FirebaseDatabase.getInstance().getReference(“教师”);
//获取视图id
RecyclerView RecyclerView=(RecyclerView)view.findViewById(R.id.rv_位置);
recyclerView.setAdapter(mAdapter);
//
bt_search=(ImageView)view.findviewbyd(R.id.bt_search);
spinner\u sort=(spinner)view.findviewbyd(R.id.spinner\u sort);
设置微调器();
List hireItem=new ArrayList();
mAdapter=new hiredapter(getContext(),R.layout.list_item_teachers,hireItem);//在(getContext(),R.layout.list_item_teachers,hireItem)处出错
bt_search.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
如果(mAdapter!=null){
mAdapter.clear();//在.clear()处出错;
}
progressDialog=新建progressDialog(getContext());
progressDialog.setMessage(“搜索教师”);
progressDialog.show();
FirebaseDatabase.getInstance().getReference(“教师”).orderByChild(“主题”).startAt(键).endAt(键+“~”)
.addChildEventListener(新的ChildEventListener(){
@凌驾
公共void onChildAdded(DataSnapshot DataSnapshot,字符串s){
Teachers-child=dataSnapshot.getValue(Teachers.class);
HireItem HireItem=新的HireItem(child.teName、child.city、child.subject、child.level、child.sex、child.mobile、child.quality、child.skill1、child.experience、child.salary、child.age);
mAdapter.add(hireItem);//在.add处出错
progressDialog.disclose();
if(mAdapter==null){
Toast.makeText(getContext(),“未找到匹配项”,Toast.LENGTH_SHORT.show();
}
}
@凌驾
公共void onChildChanged(DataSnapshot DataSnapshot,字符串s){
}
@凌驾
ChildRemoved上的公共void(DataSnapshot DataSnapshot){
}
@凌驾
已移动ChildMoved上的公共void(DataSnapshot DataSnapshot,字符串s){
}
@凌驾
已取消的公共void(DatabaseError DatabaseError){
}
});
if(mAdapter==null){
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View rowView = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_item_teachers,parent,false);
final ViewHolder viewHolder = new ViewHolder(rowView);
rowView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
itemClickListener.onItemClick(viewHolder.getLayoutPosition());
}
});
return viewHolder;
}
@Override
public void onBindViewHolder(final ViewHolder holder, final int position) {
holder.nameText.setText(TeacherItemList.get(position).getResult_name());
holder.subjectText.setText(TeacherItemList.get(position).getResult_subject());
holder.levelText.setText(TeacherItemList.get(position).getResult_level());
holder.cityText.setText(TeacherItemList.get(position).getResult_city());
//Here it is simply write onItemClick listener here
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Context context = v.getContext();
Intent intent = new Intent(context, ProfileTeaAdapter.class);
context.startActivity(intent);
}
});
}