浏览目录 排序 Android,android – 根据文件或文件夹对文件进行排序

本文介绍了一种根据文件和文件夹名称进行排序的算法实现。该算法支持升序和降序排列,并确保文件夹始终先于文件显示。通过自定义比较器实现了不同排序方式的灵活性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我有一个名称有多个文件和文件夹的数组…现在我想根据文件和folders.all文件夹排序名称然后所有文件应显示.我有变量来检查是否在数组的特定索引他们是文件或文件夹.但无法思考逻辑..

我附上了我的一些代码.

////////////////////////////////

case 0://按名称排序

{

if(m_sortType == SORT_BY_NAME && temp==false)

{

m_sortType = SORT_BY_NAME;

m_sortOrder=SORT_ORDER_DESCENDING;

temp= true;

//Log.d("SORTING", "SORT - NAME - DES");

}

else

{

m_sortType = SORT_BY_NAME;

m_sortOrder=SORT_ORDER_ASCENDING;

temp=false;

//Log.d("SORTING", "SORT - NAME - AES");

}

//Log.d("SORTING", "Data bfore sort");

for (int k=0; k

//Log.d("SORTING DATA", k + ": " + m_adapter.m_env.m_fs.get(m_SortArray[k]).m_name);

m_adapter.sortListing(m_sortType,m_sortOrder);

//Log.d("SORTING", "Data after sort");

for (int k=0; k

//Log.d("SORTING DATA", k + ": " + m_adapter.m_env.m_fs.get(m_SortArray[k]).m_name);

//Refresh();

break;

}

////////////////

private void sortListing(int sortType,int sortOrder)

{

m_sortType = sortType;

m_sortOrder = sortOrder;

Arrays.sort(m_SortArray,new Comparator(){

public int compare(Integer a1, Integer a2)

{

if(m_sortType == SORT_BY_NAME)

{

String s1 = null,s2 = null;

FileFolderEnum t2 = null;

FileFolderEnum t1 = null;

int i;

if(m_sortOrder==SORT_ORDER_ASCENDING)

{

s1 = m_env.m_fs.get(a1).m_name;

s2 = m_env.m_fs.get(a2).m_name;

t1 = m_env.m_fs.get(a1).m_type;

t2 = m_env.m_fs.get(a2).m_type;

}

else if(m_sortOrder==SORT_ORDER_DESCENDING)

{

s1 = m_env.m_fs.get(a2).m_name;

s2 = m_env.m_fs.get(a1).m_name;

t1 = m_env.m_fs.get(a2).m_type;

t2 = m_env.m_fs.get(a1).m_type;

}

//Log.d("SORTING COMPARE", "(" + Integer.toString(a1)+") s1: " + s1);

//Log.d("SORTING COMPARE", "(" + Integer.toString(a2)+") s2: " + s2);

if((t1.equals(CFileFolder.FileFolderEnum.FFE_FOLDER)&&(t2.equals(CFileFolder.FileFolderEnum.FFE_FOLDER))))

{

i=s1.compareToIgnoreCase (s2);

}

i=s1.compareToIgnoreCase (s2);

//Log.d("SORTING COMPARE", "s1.compareTo(s2): " + Integer.toString(i));

return i;

}

///////////////////

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值