Java Android studio RecyclerView错误,未显示任何内容(22小时前收到提交,工作正常)

Java Android studio RecyclerView错误,未显示任何内容(22小时前收到提交,工作正常),java,android,android-studio,github,firebase-realtime-database,Java,Android,Android Studio,Github,Firebase Realtime Database,我做了一些破坏我的计划的事。它在22小时前对我的最新承诺起了作用。 我正在使用recylerview从登录用户获取数据。我甚至看不到recylerview在我的页面上了。我怎样才能恢复到22小时前在android studio中的最新提交。我尝试了所有我不懂的事情。我今天甚至没碰那个活动,但2小时前它停止了工作 我所做的唯一一件事是重构用于编辑注释的名为custom_layout的视图,但后来我回复说,可能有东西保存在某个地方,导致了错误 以下是我的观点: 观众在此处输入代码 包com.exam

我做了一些破坏我的计划的事。它在22小时前对我的最新承诺起了作用。 我正在使用recylerview从登录用户获取数据。我甚至看不到recylerview在我的页面上了。我怎样才能恢复到22小时前在android studio中的最新提交。我尝试了所有我不懂的事情。我今天甚至没碰那个活动,但2小时前它停止了工作

我所做的唯一一件事是重构用于编辑注释的名为custom_layout的视图,但后来我回复说,可能有东西保存在某个地方,导致了错误 以下是我的观点:

观众<代码>在此处输入代码 包com.example.examapplication.ViewHolder

public  class NoteViewHolder extends RecyclerView.ViewHolder implements View.OnCreateContextMenuListener {

    public TextView text_title, text_content;

    public NoteViewHolder(@NonNull View itemView){

        super (itemView);

        text_title = itemView.findViewById(R.id.text_title);
        text_content = itemView.findViewById(R.id.text_content);

        itemView.setOnCreateContextMenuListener(this); // context to this view


    }

    @Override
    public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) { // on clik update delete on every object

   // menu.setHeaderTitle("Select desired option");
    menu.add(0,0,getAdapterPosition(),"Edit Note");
    menu.add(0,0,getAdapterPosition(),"Delete Note");

    }
}
主要活动 在这里输入代码

包com.example.examapplication

public class HomeActivity extends AppCompatActivity {

    private RecyclerView recyclerView; 
    private FloatingActionButton addNotePageButton;
    private FirebaseAuth firebaseAuth;
    FirebaseDatabase database;
    DatabaseReference notesDb;
    FirebaseRecyclerOptions<NotesList> options;
    FirebaseRecyclerAdapter<NotesList, NoteViewHolder> adapter; // adapter

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

            //iniate
            viewSetUp();

            // refrense
            notesDb = database.getReference("NoteList").child(firebaseAuth.getCurrentUser().getUid());
            recyclerView.setHasFixedSize(true);
            recyclerView.setLayoutManager( new LinearLayoutManager(this) );
            showEachRow(); // call function

            // buton to add note
            addNotePageButton.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Intent intent = new Intent(HomeActivity.this, NoteInputActivity.class);
                    startActivity(intent);
                }
        });
    }


    //Region -used for edit and delete this section start reads whats in the post and open ups a window on the same window based on the  Viewholder and a xml file called custom_layout
     // recycler view in this section and only the verifed logged in user can See his own data!
    @Override
    protected void onStart() {
        super.onStart();
        adapter.startListening();
    }

    @Override
    protected void onStop() {
        super.onStop();
        adapter.stopListening();
    }

    @Override
    public boolean onContextItemSelected(@NonNull MenuItem item) { // viewholder

       if (item.getTitle().equals("Edit Note")){
           showUpdateDialog(adapter.getRef(item.getOrder()).getKey(),adapter.getItem(item.getOrder()));
       } else if (item.getTitle().equals("Delete Note")){
           deleteNote(adapter.getRef(item.getOrder()).getKey());
       }

        return super.onContextItemSelected(item);
    }

    private void deleteNote(String adapter) { // delete

        notesDb.child(adapter).removeValue();
    }

    private void showUpdateDialog(final String key, NotesList item) {
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setTitle("[ Note Edit Mode]");
        builder.setMessage("Please update the desired fields");

        View update_layout = LayoutInflater.from(this).inflate(R.layout.custom_layout,null); // view model layou

        final EditText changed_title = update_layout.findViewById(R.id.edit_update_title);
        final EditText changed_content = update_layout.findViewById(R.id.edit_update_text);

        changed_title.setText(item.getTitle()); // get value to new
        changed_content.setText(item.getText());
        builder.setView(update_layout);
        builder.setPositiveButton("Save changes", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {

                String title = changed_title.getText().toString();
                String content = changed_content.getText().toString();

                NotesList notesList = new NotesList(title,content);
                notesDb.child(key).setValue(notesList);

                Toast.makeText(HomeActivity.this,"Note Updated", Toast.LENGTH_SHORT).show();

            }
        });
        builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                dialog.dismiss();

            }
        });
            builder.show();
    }
    //# EndRegion

    // Region to read data from dataBase using  Viewholder and model Notes and  a xml file called note_each_row + the home xml file.
    private void showEachRow(){ // recycler view
       options = new FirebaseRecyclerOptions.Builder<NotesList>()
               .setQuery(notesDb,NotesList.class)
               .build();

       adapter = new FirebaseRecyclerAdapter<NotesList, NoteViewHolder>(options) { // noteViewModel to model to get
           @Override
           protected void onBindViewHolder(@NonNull NoteViewHolder holder, int position, @NonNull NotesList model) {
               holder.text_title.setText(model.getTitle());
               holder.text_content.setText(model.getText());
           }

           @NonNull
           @Override
           public NoteViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {

               View itemView  = LayoutInflater.from(viewGroup.getContext())
                       .inflate(R.layout.notes_each_row,viewGroup,false); // inflate the rows

               return new NoteViewHolder(itemView);
           }
       };

       recyclerView.setAdapter(adapter);

        }
    //# end Region

//#start region initate to xml
    private void viewSetUp(){
        recyclerView = findViewById(R.id.recyclerView);
        addNotePageButton = findViewById(R.id.fab_button_addPage);
        firebaseAuth = FirebaseAuth.getInstance(); // get inSTACE
        database = FirebaseDatabase.getInstance();

    }
    // end region

    //# Menu
    private void Logout(){ // sign out method called in switchcase
        firebaseAuth.signOut();
        finish();
        startActivity(new Intent(HomeActivity.this,MainActivity.class));
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) { //create menu on toolbar
        getMenuInflater().inflate(R.menu.menu,menu); //inflated inside
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(@NonNull MenuItem item) { // handle on click events on items on menu
        switch(item.getItemId()){
            case R.id.logoutMenu:{
                Logout();
                finish();
                break;
            }
            case R.id.ProfileMenu:{
                startActivity(new Intent(HomeActivity.this,ProfileActivity.class));
                finish();
                break;
            }

            case R.id.HomeMenu:{
                startActivity(new Intent(HomeActivity.this,HomeActivity.class));
                finish();
                break;

            }
        }

        return super.onOptionsItemSelected(item);
    }
}
 // Endregion
公共类HomeActivity扩展了AppCompatActivity{
私人回收站;
私有浮动操作按钮addNotePageButton;
私有FirebaseAuth FirebaseAuth;
Firebase数据库;
数据库参考说明数据库;
FirebaseRecyclerOptions选项;
FirebaseRecyclerAdapter适配器;//适配器
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home);
//伊尼特
viewSetUp();
//避免
notesDb=database.getReference(“NoteList”).child(firebaseAuth.getCurrentUser().getUid());
recyclerView.setHasFixedSize(true);
recyclerView.setLayoutManager(新的LinearLayoutManager(本));
showEachRow();//调用函数
//布顿补充说
addNotePageButton.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
意向意向=新意向(HomeActivity.this、NoteInputActivity.class);
星触觉(意向);
}
});
}
//区域-用于编辑和删除此部分开始读取文章中的内容,并基于Viewholder和名为custom_layout的xml文件在同一窗口上打开一个窗口
//回收者查看此部分,只有verifed登录用户才能查看自己的数据!
@凌驾
受保护的void onStart(){
super.onStart();
adapter.startListening();
}
@凌驾
受保护的void onStop(){
super.onStop();
adapter.stopListening();
}
@凌驾
公共布尔值onContextItemSelected(@NonNull MenuItem){//viewholder
if(item.getTitle().equals(“编辑注释”)){
showUpdateDialog(adapter.getRef(item.getOrder()).getKey()、adapter.getItem(item.getOrder());
}else if(item.getTitle().equals(“删除注释”)){
deleteNote(adapter.getRef(item.getOrder()).getKey());
}
返回super.onContextItemSelected(项目);
}
私有void deleteNote(字符串适配器){//delete
notesDb.child(适配器).removeValue();
}
私有void showUpdateDialog(最终字符串键,NotesList项){
AlertDialog.Builder=新建AlertDialog.Builder(此);
builder.setTitle(“[注释编辑模式]”);
setMessage(“请更新所需字段”);
视图更新布局=LayoutInflater.from(this).充气(R.layout.custom布局,null);//视图模型布局
final EditText changed\u title=更新布局.findViewById(R.id.edit\u update\u title);
final EditText changed\u content=更新布局.findViewById(R.id.edit\u update\u text);
更改了_title.setText(item.getTitle());//获取新的值
更改了_content.setText(item.getText());
builder.setView(更新布局);
setPositiveButton(“保存更改”,新建DialogInterface.OnClickListener()){
@凌驾
public void onClick(DialogInterface dialog,int which){
String title=changed_title.getText().toString();
String content=changed_content.getText().toString();
NotesList NotesList=新的NotesList(标题、内容);
notesDb.child(键).setValue(notesList);
Toast.makeText(HomeActivity.this,“便笺更新”,Toast.LENGTH_SHORT.show();
}
});
setNegativeButton(“取消”,新建DialogInterface.OnClickListener()){
@凌驾
public void onClick(DialogInterface dialog,int which){
dialog.dismise();
}
});
builder.show();
}
//#端区
//使用Viewholder和model Notes以及名为note_的xml文件(每行+主xml文件)从数据库读取数据的区域。
私有void showEachRow(){//recycler视图
选项=新的FirebaseRecyclerOptions.Builder()
.setQuery(notesDb,NotesList.class)
.build();
适配器=新的FirebaseRecyclerAdapter(选项){//noteViewModel到要获取的模型
@凌驾
受保护的无效onBindViewHolder(@NonNull NoteViewHolder,int位置,@NonNull NotesList模型){
holder.text_title.setText(model.getTitle());
holder.text_content.setText(model.getText());
}
@非空
@凌驾
public NoteViewHolder onCreateViewHolder(@NonNull ViewGroup ViewGroup,int i){
View itemView=LayoutInflater.from(viewGroup.getContext())
.充气(R.layout.notes_每行,视图组,false);//充气行
返回新的NoteViewHolder(itemView);
}
};
recyclerView.setAdapter(适配器);
}
//#末端区域
//#启动区域初始化为xml
私有void viewSetUp(){
recyclerView=findViewById(R.id.recyclerView);
addNotePageButton=findViewById(R.id.fab_b
public class HomeActivity extends AppCompatActivity {

    private RecyclerView recyclerView; 
    private FloatingActionButton addNotePageButton;
    private FirebaseAuth firebaseAuth;
    FirebaseDatabase database;
    DatabaseReference notesDb;
    FirebaseRecyclerOptions<NotesList> options;
    FirebaseRecyclerAdapter<NotesList, NoteViewHolder> adapter; // adapter

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

            //iniate
            viewSetUp();

            // refrense
            notesDb = database.getReference("NoteList").child(firebaseAuth.getCurrentUser().getUid());
            recyclerView.setHasFixedSize(true);
            recyclerView.setLayoutManager( new LinearLayoutManager(this) );
            showEachRow(); // call function

            // buton to add note
            addNotePageButton.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Intent intent = new Intent(HomeActivity.this, NoteInputActivity.class);
                    startActivity(intent);
                }
        });
    }


    //Region -used for edit and delete this section start reads whats in the post and open ups a window on the same window based on the  Viewholder and a xml file called custom_layout
     // recycler view in this section and only the verifed logged in user can See his own data!
    @Override
    protected void onStart() {
        super.onStart();
        adapter.startListening();
    }

    @Override
    protected void onStop() {
        super.onStop();
        adapter.stopListening();
    }

    @Override
    public boolean onContextItemSelected(@NonNull MenuItem item) { // viewholder

       if (item.getTitle().equals("Edit Note")){
           showUpdateDialog(adapter.getRef(item.getOrder()).getKey(),adapter.getItem(item.getOrder()));
       } else if (item.getTitle().equals("Delete Note")){
           deleteNote(adapter.getRef(item.getOrder()).getKey());
       }

        return super.onContextItemSelected(item);
    }

    private void deleteNote(String adapter) { // delete

        notesDb.child(adapter).removeValue();
    }

    private void showUpdateDialog(final String key, NotesList item) {
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setTitle("[ Note Edit Mode]");
        builder.setMessage("Please update the desired fields");

        View update_layout = LayoutInflater.from(this).inflate(R.layout.custom_layout,null); // view model layou

        final EditText changed_title = update_layout.findViewById(R.id.edit_update_title);
        final EditText changed_content = update_layout.findViewById(R.id.edit_update_text);

        changed_title.setText(item.getTitle()); // get value to new
        changed_content.setText(item.getText());
        builder.setView(update_layout);
        builder.setPositiveButton("Save changes", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {

                String title = changed_title.getText().toString();
                String content = changed_content.getText().toString();

                NotesList notesList = new NotesList(title,content);
                notesDb.child(key).setValue(notesList);

                Toast.makeText(HomeActivity.this,"Note Updated", Toast.LENGTH_SHORT).show();

            }
        });
        builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                dialog.dismiss();

            }
        });
            builder.show();
    }
    //# EndRegion

    // Region to read data from dataBase using  Viewholder and model Notes and  a xml file called note_each_row + the home xml file.
    private void showEachRow(){ // recycler view
       options = new FirebaseRecyclerOptions.Builder<NotesList>()
               .setQuery(notesDb,NotesList.class)
               .build();

       adapter = new FirebaseRecyclerAdapter<NotesList, NoteViewHolder>(options) { // noteViewModel to model to get
           @Override
           protected void onBindViewHolder(@NonNull NoteViewHolder holder, int position, @NonNull NotesList model) {
               holder.text_title.setText(model.getTitle());
               holder.text_content.setText(model.getText());
           }

           @NonNull
           @Override
           public NoteViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {

               View itemView  = LayoutInflater.from(viewGroup.getContext())
                       .inflate(R.layout.notes_each_row,viewGroup,false); // inflate the rows

               return new NoteViewHolder(itemView);
           }
       };

       recyclerView.setAdapter(adapter);

        }
    //# end Region

//#start region initate to xml
    private void viewSetUp(){
        recyclerView = findViewById(R.id.recyclerView);
        addNotePageButton = findViewById(R.id.fab_button_addPage);
        firebaseAuth = FirebaseAuth.getInstance(); // get inSTACE
        database = FirebaseDatabase.getInstance();

    }
    // end region

    //# Menu
    private void Logout(){ // sign out method called in switchcase
        firebaseAuth.signOut();
        finish();
        startActivity(new Intent(HomeActivity.this,MainActivity.class));
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) { //create menu on toolbar
        getMenuInflater().inflate(R.menu.menu,menu); //inflated inside
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(@NonNull MenuItem item) { // handle on click events on items on menu
        switch(item.getItemId()){
            case R.id.logoutMenu:{
                Logout();
                finish();
                break;
            }
            case R.id.ProfileMenu:{
                startActivity(new Intent(HomeActivity.this,ProfileActivity.class));
                finish();
                break;
            }

            case R.id.HomeMenu:{
                startActivity(new Intent(HomeActivity.this,HomeActivity.class));
                finish();
                break;

            }
        }

        return super.onOptionsItemSelected(item);
    }
}
 // Endregion
enter code here

<?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"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    app:cardElevation="4dp"

    app:cardUseCompatPadding="true">


    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"

        android:padding="8dp">


        <ImageView
            android:id="@+id/random"
            android:layout_width="45dp"
            android:layout_height="37dp"

            android:src="@drawable/note" />


        <TextView
            android:id="@+id/text_title"
            android:background="@color/LightPink"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Title"
            style="@style/TextAppearance.AppCompat.Headline"/>


        <View
            android:layout_marginTop="5dp"
            android:id="@+id/fillView"
            android:layout_width="fill_parent"
            android:layout_height="3dp"
            android:background="#c0c0c0"/>





        <TextView
            android:id="@+id/text_content"
            android:text="content"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            style="@style/TextAppearance.AppCompat.Body1"/>






    </LinearLayout>




</androidx.cardview.widget.CardView>