我有一个名称有多个文件和文件夹的数组…现在我想根据文件和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;
}
///////////////////