我有这个功能,它应该提供专辑列表或buck_display_name(s),但它返回重复的值。我搜索了很多但找不到任何帮助:
expand_limits()
嵌套循环的输出:
String[] projection = {"Distinct "+MediaStore.Images.Media.BUCKET_ID,
MediaStore.Images.Media._ID,
MediaStore.Images.Media.DATA,
MediaStore.Images.Media.BUCKET_DISPLAY_NAME
};
cursor = getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,projection,null,null,"bucket_display_name ASC");
Log.i("ResultCount",String.valueOf(cursor.getCount()));
int i=0;
_ALBUM_IDs = new ArrayList<>();
URIs = new ArrayList<>();
_IDs = new ArrayList<>();
_ALBUM_NAMES = new ArrayList<>();
while (cursor.moveToNext()){
Log.i("Row",String.valueOf(i));
for (int j=0;j<cursor.getColumnCount();j++){
Log.i("Column "+j,cursor.getColumnNames()[j]+", value: "+cursor.getString(j));
}
_ALBUM_IDs.add(cursor.getString(0));
_IDs.add(cursor.getString(1));
URIs.add(cursor.getString(2));
_ALBUM_NAMES.add(cursor.getString(3));
i++;
}
您可以看到bucket_id,bucket_display_name的重复值。为什么是这样?谢谢。
答案 0 :(得分:0)
ContentResolver.query()
值不同,因此函数可以正常工作。
$("button").on("click", function(e) {
// this creates a new binding on click
$("form").on("submit", function(e) {
});
});
方法实际上并不允许您过滤特定列中的不同值(这将需要GROUP BY,这也是不可能的),除非内容提供者实际为您提供了数据源。
您必须手动过滤结果。