2016-06-14 51 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; 
       } 
      } 
     }); 

这个危险物品将在后顶部名单和非危险 - 在底部。现在您可以将此列表设置为适配器的来源