android小部件SearchView OnQueryTextListener

时间:2013-08-22 17:38:00

标签: java android eclipse scala

我想在Android Scala eclipse插件中实现android的搜索方法:

我有这个方法:

val queryListener = new OnQueryTextListener() {

override def onQueryTextChange(newText: String): Boolean = {
  if (TextUtils.isEmpty(newText)) {
    getActivity.getActionBar.setSubtitle("List")
    val grid_currentQuery = null
  } else {
    getActivity.getActionBar.setSubtitle("List - Searching for: " + newText)
    val grid_currentQuery = newText
  }
  getLoaderManager.restartLoader(0, null, this)

  false
}

在这一行“getLoaderManager.restartLoader(0,null,this)”我有一个“this”错误,我的错误是:

 type mismatch; found : android.widget.SearchView.OnQueryTextListener required: 
  android.support.v4.app.LoaderManager.LoaderCallbacks[?]

请您帮我完成此实施

提前致谢!

更新1:

之前我使用过但仍然是错误

 getLoaderManager.restartLoader(0, null, BooksFragment.this)

我的错误是:

 Multiple markers at this line
- type mismatch; found : com.android.BooksFragment required: 
 android.support.v4.app.LoaderManager.LoaderCallbacks[?]
- type mismatch; found : com.android.BooksFragment required: 

1 个答案:

答案 0 :(得分:1)

你的“this”指的是OnQueryTextListener类型的东西。它应该是LoaderCallbacks [?]类型的变量引用。 尝试用LoaderCallbacks变量替换它。

也许是getLoaderManager.restartLoader(0,null,yourLoaderClassVariable)

例如,如果您关注the official android document,请尝试

getLoaderManager.restartLoader(0, null, CursorLoaderListFragment.this)

更新

class CursorLoaderListFragment extends ListFragment with OnQueryTextListener with OnCloseListener with LoaderManager.LoaderCallbacks[Cursor] {
...
    def onQueryTextChange(newText: String): Boolean = {
    ...
        getLoaderManager.restartLoader(0, null, CursorLoaderListFragment.this)
    ...
    true
    }
}

在您的情况下,它可能如下所示:

class BooksFragment extends ListFragment with OnQueryTextListener with OnCloseListener with LoaderManager.LoaderCallbacks[Cursor]

更新2: 对于第二个错误,请尝试添加这三行。您可以稍后实施它们。

def onLoadFinished(l: Loader[Cursor], c: Cursor): Unit = ??? 
def onLoaderReset(l: Loader[Cursor]): Unit = ??? 
def onQueryTextChange(s: String): Boolean = ???
相关问题