我想在插件中实现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:
发布于 2013-08-22 18:54:44
您的"this“指的是具有OnQueryTextListener类型的东西。它应该是带有LoaderCallbacks类型的变量的引用。尝试用一个LoaderCallbacks变量替换它。
可能是getLoaderManager.restartLoader(0,null,yourLoaderClassVariable)
例如,如果您遵循官方android文档,请尝试
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 = ???
https://stackoverflow.com/questions/18387240
复制相似问题