0

I used searchView widget in android, eclipse Scala plugin, I want to update my List after pressing the search button, right-now I have some error in my filter method implementation

would you please give me some hints,

Here is the Filter Method:

 override def getFilter(): Filter = {
  new Filter() {

    protected override def publishResults(constraint: CharSequence, results: 
FilterResults) {
      books = results.values.asInstanceOf[List[BookMetadata]]
      ItemAdapter.this.notifyDataSetChanged()
    }

    protected override def performFiltering(constraint: CharSequence): FilterResults = {
      val filteredResults: List[BookMetadata] =   
 ListBuffer(books.asScala.toList.filter(b.startsWith(constraint.toString)): _*)
      val results = new FilterResults()
      results.values = filteredResults
      results
    }
  }
}

I have an error here :

books = results.values.asInstanceOf[List[BookMetadata]]

 error: Multiple markers at this 
line 
- reassignment to val 
- reassignment to val

one error for b. val filteredResults: List[BookMetadata] =
ListBuffer(books.asScala.toList.filter(b.startsWith(constraint.toString)): _*)

  not found: value 
  b

Thanks in advance!

Elnaz
  • 1,095
  • 1
  • 12
  • 30

1 Answers1

1

Change from

val books 

to

var books 

And change

val filteredResults: List[BookMetadata] = ListBuffer(books.asScala.toList.filter(b.startsWith(constraint.toString)): _*)

to

val filteredResults: List[BookMetadata] = ListBuffer(books.asScala.toList.filter(b => b.startsWith(constraint.toString)): _*)

And please see Use of def, val, and var in scala

Community
  • 1
  • 1
pt2121
  • 11,720
  • 8
  • 52
  • 69