2016-06-14 47 views
0

我有一個應用程序,我必須將應用程序分爲兩個高和中我想要設置的應用程序,這是高風險的高列和中等風險的中欄我該怎麼做,這裏是我的代碼想實現但沒有成功如何在android中分類?

這裏是代碼: -

public void _fillRowData(int position, View rootView) { 
    if (position == _appHeaderIndex || position == _systemMenacesHeaderIndex) { 
     ResultsAdapterHeaderItem obj = (ResultsAdapterHeaderItem) getItem(position); 
     ResultsAdapterHeaderItem header = (ResultsAdapterHeaderItem) obj; 
     TextView headerText = (TextView) rootView.findViewById(R.id.Titlelabel); 
     headerText.setText(header.getDescription()); 
    } else if (_systemMenacesHeaderIndex == -1 || position < _systemMenacesHeaderIndex) //We are receiving something that is not a header and no system menaces 
    { 
     final ResultsAdapterProblemItem ri = (ResultsAdapterProblemItem) getItem(position); 
     final AppProblem ap = ri.getAppProblem(); 

     TextView textView = (TextView) rootView.findViewById(R.id.Titlelabel); 
     TextView riskText = (TextView) rootView.findViewById(R.id.qualityApp); 
     ImageView imageView = (ImageView) rootView.findViewById(R.id.logo); 
     if (ap.isDangerous()) { 
      riskText.setTextColor(ContextCompat.getColor(getContext(), R.color.HighRiskColor)); 
      riskText.setText(R.string.high_risk); 
     } else { 
      riskText.setTextColor(ContextCompat.getColor(getContext(), R.color.MediumRiskColor)); 
      riskText.setText(R.string.medium_risk); 
     } 

     RelativeLayout relativeLayout = (RelativeLayout) rootView.findViewById(R.id.itemParent); 
     relativeLayout.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       if (_onItemChangedStateListener != null) 
        _onItemChangedStateListener.onItemSelected(ap); 
      } 
     }); 
     imageView.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       if (_onItemChangedStateListener != null) 
        _onItemChangedStateListener.onItemSelected(ap); 
      } 
     }); 


     textView.setText(StaticTools.getAppNameFromPackage(getContext(), ap.getPackageName())); 
     imageView.setImageDrawable(StaticTools.getIconFromPackage(ap.getPackageName(), getContext())); 
    } else { 
     final ResultsAdapterProblemItem ri = (ResultsAdapterProblemItem) getItem(position); 
     final SystemProblem sp = ri.getSystemProblem(); 

     TextView textView = (TextView) rootView.findViewById(R.id.Titlelabel); 
     TextView riskText = (TextView) rootView.findViewById(R.id.qualityApp); 
     ImageView imageView = (ImageView) rootView.findViewById(R.id.logo); 

     if (sp.isDangerous()) { 
      riskText.setTextColor(ContextCompat.getColor(getContext(), R.color.HighRiskColor)); 
      riskText.setText(R.string.high_risk); 
     } else { 
      riskText.setTextColor(ContextCompat.getColor(getContext(), R.color.MediumRiskColor)); 
      riskText.setText(R.string.medium_risk); 
     } 

     RelativeLayout linearLayout = (RelativeLayout) rootView.findViewById(R.id.itemParent); 
     linearLayout.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       if (_onItemChangedStateListener != null) 
        _onItemChangedStateListener.onItemSelected(sp); 
      } 
     }); 
     imageView.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       if (_onItemChangedStateListener != null) 
        _onItemChangedStateListener.onItemSelected(sp); 
      } 
     }); 

     textView.setText(sp.getTitle(getContext())); 
     imageView.setImageDrawable(sp.getIcon(getContext())); 
    } 
} 
+0

不清楚您想要執行的操作。你想按照特定的順序排列你的列表嗎? –

+0

是的,我想要做什麼 – Siddharth

回答

0

你只需要在設置前到您的收藏排序,適配器

List<ResultsAdapterProblemItem> yourList = ...; 
     Collections.sort(yourList, new Comparator<ResultsAdapterProblemItem>() { 
      @Override 
      public int compare(ResultsAdapterProblemItem lhs, ResultsAdapterProblemItem rhs) { 
       if(lhs.getAppProblem().isDangerous()) { 
        if(rhs.getAppProblem().isDangerous()) { 
         return 0; 
        } else { 
         return 1; 
        } 
       } else if(rhs.getAppProblem().isDangerous()){ 
        return -1; 
       } else { 
        return 0; 
       } 
      } 
     }); 

這個危險物品將在後頂部名單和非危險 - 在底部。現在您可以將此列表設置爲適配器的來源