Why the note pages can't show up and can't sync
-
My purpose: I am using Realm as a database and I am making a note app .I suppose note page can be saved and there is new info (a new column) in the mainActivity .However , after clicking the Save button in the action bar . These can't work but no error is made .
What files I have? 1.RealmBasicConfig 2.AddSaveNotesActivity 3.NotesAdapter 4.notes_rv_layout (for the pre-set first note view) 5.MainActivity( The first page in the app )What solutions I want : why notes_rv_layout does not work , and the notes content can not be synced It should be the problem of the mainActivity ( adapter!!.notifyDataSetChanged - can't work ?)
The codes of MainActivity:
class Main2Activity : AppCompatActivity() { private lateinit var notesList:ArrayList<BasicInfoConfig> private lateinit var realm: Realm private lateinit var appBarConfiguration: AppBarConfiguration override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main2) handleIntent(intent) val toolbar: Toolbar = findViewById(R.id.toolbar) setSupportActionBar(toolbar) val drawerLayout: DrawerLayout = findViewById(R.id.drawer_layout) val navView: NavigationView = findViewById(R.id.nav_view) val navController = findNavController(R.id.nav_host_fragment) // Passing each menu ID as a set of Ids because each // menu should be considered as top level destinations. appBarConfiguration = AppBarConfiguration(setOf( R.id.nav_home, R.id.nav_gallery, R.id.nav_slideshow), drawerLayout) setupActionBarWithNavController(navController, appBarConfiguration) navView.setupWithNavController(navController) //custom init views realm = Realm.getDefaultInstance() //set onclicklistener addNotes.setOnClickListener{ startActivity(Intent(this,AddSaveNotesActivity::class.java)) finish() notesRV.layoutManager = LinearLayoutManager(this) getAllNotes() } } private fun getAllNotes() { //yellow : used notesList = ArrayList() val results:RealmResults<BasicInfoConfig> = realm.where<BasicInfoConfig>(BasicInfoConfig::class.java).findAll() notesRV.adapter = NotesAdapter(this,results) notesRV.adapter!!.notifyDataSetChanged() // to update // bec I deleted the way it saved // none info can be read } override fun onNewIntent(intent: Intent) { super.onNewIntent(intent) handleIntent(intent) } override fun onCreateOptionsMenu(menu: Menu): Boolean { // Inflate the menu; this adds items to the action bar if it is present. menuInflater.inflate(R.menu.main2, menu) // Associate searchable configuration with the SearchView // Associate searchable configuration with the SearchView val searchManager = getSystemService(Context.SEARCH_SERVICE) as SearchManager (menu.findItem(R.id.search).actionView as SearchView).apply { setSearchableInfo(searchManager.getSearchableInfo(componentName)) } return true } override fun onBackPressed() { super.onBackPressed() } override fun onSupportNavigateUp(): Boolean { val navController = findNavController(R.id.nav_host_fragment) return navController.navigateUp(appBarConfiguration) || super.onSupportNavigateUp() } private fun handleIntent(intent: Intent) { if (Intent.ACTION_SEARCH == intent.action) { val query = intent.getStringExtra(SearchManager.QUERY) //use the query to search your data somehow } } }
The codes of NotesAdapterView
class NotesAdapter (private val context : Context? , private val notesList : RealmResults<BasicInfoConfig>) : RecyclerView.Adapter<RecyclerView.ViewHolder>(){ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder { val v = LayoutInflater.from(parent.context).inflate(R.layout.notes_rv_layout, parent,false) return ViewHolder(v) } override fun getItemCount(): Int { return notesList.size } override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) { holder.itemView.notes_title.text = notesList[position]!!.title holder.itemView.notes_body.text = notesList[position]!!.description } class ViewHolder(v:View?):RecyclerView.ViewHolder(v!!) { // val Ada_title = itemView.findViewById<TextView>(R.id.notes_title) val Ada_date = itemView.findViewById<TextView>(R.id.notes_timeStamp) } The codes of RealmBasicConfig: package com.example.notepad_free import io.realm.RealmObject import io.realm.annotations.PrimaryKey open class BasicInfoConfig( //connecting basic info to Realm @PrimaryKey var id:Int ?= null, var title:String?=null, var description:String?=null ):RealmObject()
Please tell me if more codes are needed , feel grateful if you help!
android-recyclerview realm android-studio-3.0
-
is this website forcing me to post the pic , wtf? There 's only a little space for me to see my editing .
-
Wish I could help @locus-jim
but I am not great at android.