加载程序函数在返回 Uri 值时显示错误
Loader function showing error while returning Uri value
加载器函数
@Override
public android.support.v4.content.Loader<Uri> onCreateLoader(int id, Bundle args) {
DbLoader abc=new DbLoader(this,uri,values);
return abc;
}
DbLoader 函数
public class DbLoader extends AsyncTaskLoader<Uri> {
Context context;
Uri uri;
ContentValues values;
public DbLoader(Context context, Uri uri, ContentValues values) {
super(context);
this.context=context;
this.uri=uri;
this.values=values;
}
@Override
public Uri loadInBackground() {
Log.e("TAG","thread running");
Uri uriTemp=context.getContentResolver().insert(uri,values);
return uriTemp;
}
}
我收到错误提示,我正在 returning 错误的 return 类型的数据。
在从互联网加载数据时,我对 String 做了同样的事情,当时它工作了。
我该怎么做才能消除此错误?
确切的错误消息是
Incompatible types.
Required:
android.support.v4.content.Loader
<android.net.Uri>
Found:
com.example.asus.test_table.DbLoader
看来你用错了AsyncTaskLoader
。你想
import android.support.v4.content.AsyncTaskLoader;
而不是
import android.content.AsyncTaskLoader;
。前者扩展android.support.v4.content.Loader
,后者不扩展
加载器函数
@Override
public android.support.v4.content.Loader<Uri> onCreateLoader(int id, Bundle args) {
DbLoader abc=new DbLoader(this,uri,values);
return abc;
}
DbLoader 函数
public class DbLoader extends AsyncTaskLoader<Uri> {
Context context;
Uri uri;
ContentValues values;
public DbLoader(Context context, Uri uri, ContentValues values) {
super(context);
this.context=context;
this.uri=uri;
this.values=values;
}
@Override
public Uri loadInBackground() {
Log.e("TAG","thread running");
Uri uriTemp=context.getContentResolver().insert(uri,values);
return uriTemp;
}
}
我收到错误提示,我正在 returning 错误的 return 类型的数据。 在从互联网加载数据时,我对 String 做了同样的事情,当时它工作了。 我该怎么做才能消除此错误?
确切的错误消息是
Incompatible types.
Required:
android.support.v4.content.Loader
<android.net.Uri>
Found:
com.example.asus.test_table.DbLoader
看来你用错了AsyncTaskLoader
。你想
import android.support.v4.content.AsyncTaskLoader;
而不是
import android.content.AsyncTaskLoader;
。前者扩展android.support.v4.content.Loader
,后者不扩展