问题描述
因此,我正在为哈佛大学的CS50开发一个Android Note应用程序,并且我在努力使用删除按钮。当我没有要删除的笔记时,我的删除按钮使我关闭了该应用程序。没有笔记时如何启用或禁用删除按钮?此外,当我没有要删除的笔记时,我不想关闭该应用程序。
对MainActivity.java文件有任何建议吗,或者我需要对Main_Activity.xml文件进行更改吗?
主要活动代码:
@H_404_7@package edu.harvard.cs50.notes; import androidx.appcompat.app.AppCompatActivity; import androidx.recyclerview.widget.DefaultItemAnimator; import androidx.recyclerview.widget.linearlayoutmanager; import androidx.recyclerview.widget.RecyclerView; import androidx.room.Room; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.Toast; import com.google.android.material.floatingactionbutton.FloatingActionButton; import com.google.android.material.snackbar.Snackbar; public class MainActivity extends AppCompatActivity { private RecyclerView recyclerView; private RecyclerView.LayoutManager layoutManager; private NotesAdapter adapter; public static NotesDatabase database; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); database = Room .databaseBuilder(getApplicationContext(),NotesDatabase.class,"notes") .allowMainThreadQueries() .build(); recyclerView = findViewById(R.id.recycler_view); layoutManager = new linearlayoutmanager(this); adapter = new NotesAdapter(); recyclerView.setLayoutManager(layoutManager); recyclerView.setAdapter(adapter); FloatingActionButton fab = findViewById(R.id.add_note_button); fab.setonClickListener(new View.OnClickListener() { @Override public void onClick(View view) { database.noteDao().create(); Toast.makeText(MainActivity.this,"New note made",Toast.LENGTH_SHORT).show(); adapter.reload(); } }); final FloatingActionButton delete = findViewById(R.id.delete_button); delete.setonClickListener(new View.OnClickListener(){ @Override public void onClick(View view){ Toast.makeText(MainActivity.this,"Note deleted",Toast.LENGTH_SHORT).show(); adapter.deleteNode(); delete.setEnabled(! Note.empty()); } }); } @Override protected void onResume() { super.onResume(); adapter.reload(); } public void delete(View view){ view = this.recyclerView; delete(recyclerView.findContainingItemView(view)); //finish(); } }
Main_Activity.xml文件:
@H_404_7@<?xml version="1.0" encoding="utf-8"?> <androidx.coordinatorlayout.widget.CoordinatorLayout 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=".MainActivity"> <androidx.recyclerview.widget.RecyclerView android:id="@+id/recycler_view" android:scrollbars="vertical" android:layout_width="match_parent" android:layout_height="match_parent" /> <com.google.android.material.floatingactionbutton.FloatingActionButton android:id="@+id/add_note_button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="bottom|right" android:layout_margin="16dp" android:tint="@color/cardview_light_background" app:backgroundTint="#03DAC5" app:srcCompat="@android:drawable/ic_input_add" /> <com.google.android.material.floatingactionbutton.FloatingActionButton android:id="@+id/delete_button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="bottom|left" android:layout_margin="16dp" android:tint="@color/cardview_light_background" app:backgroundTint="@color/design_default_color_primary_dark" app:srcCompat="@android:drawable/ic_delete" android:enable="false"/> </androidx.coordinatorlayout.widget.CoordinatorLayout>
我的记事应用布局的照片: https://imgur.com/a/aU2052L
谢谢您的时间!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)