如果我使用代码1
Utility.DetailsInfo myInfo=new Utility.DetailsInfo()
会导致错误,为什么?
No enclosing instance of type Utility is accessible. Must qualify the allocation with an enclosing instance of type Utility
(例如x.new A(),其中x是效用的实例)。我可以创建一个内部静态类的实例吗?
所以我必须使用代码2
我可以做静态内部类的实例?
谢谢!
代码1
public class Utility {
class DetailsInfo {
String title;
String path;
String size;
Bitmap thumbnails;
}
public static void GetPhotoDetailsByID(Context mycontext,String id,DetailsInfo myInfo){
Cursor cur = mycontext.getContentResolver().query(
MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
null,
MediaStore.Images.Media._ID+"=?",
new String[]{id},
"");
if (cur.moveToFirst()){
myInfo.title= cur.getString(cur.getColumnIndex(MediaStore.Images.Media.TITLE));
myInfo.path = cur.getString(cur.getColumnIndex(MediaStore.Images.Media.DATA));
myInfo.size=cur.getString(cur.getColumnIndex(MediaStore.Images.Media.SIZE));
myInfo.thumbnails = MediaStore.Images.Thumbnails.getThumbnail(
mycontext.getContentResolver(),
Integer.parseInt(id),
MediaStore.Images.Thumbnails.MICRO_KIND,
null);
}
cur.close();
}
}
代码2
public class Utility {
public static class DetailsInfo {
String title;
String path;
String size;
Bitmap thumbnails;
}
public static void GetPhotoDetailsByID(Context mycontext,String id,DetailsInfo myInfo){
Cursor cur = mycontext.getContentResolver().query(
MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
null,
MediaStore.Images.Media._ID+"=?",
new String[]{id},
"");
if (cur.moveToFirst()){
myInfo.title= cur.getString(cur.getColumnIndex(MediaStore.Images.Media.TITLE));
myInfo.path = cur.getString(cur.getColumnIndex(MediaStore.Images.Media.DATA));
myInfo.size=cur.getString(cur.getColumnIndex(MediaStore.Images.Media.SIZE));
myInfo.thumbnails = MediaStore.Images.Thumbnails.getThumbnail(
mycontext.getContentResolver(),
Integer.parseInt(id),
MediaStore.Images.Thumbnails.MICRO_KIND,
null);
}
cur.close();
}
}