Guest User

Untitled

a guest
Dec 13th, 2017
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.42 KB | None | 0 0
  1. public class ListFragment extends Fragment implements View.OnClickListener{
  2.  
  3. ArrayList dataModels;
  4. Random rnd;
  5. ProcessorAdapter adapter;
  6.  
  7. @Override
  8. public View onCreateView(LayoutInflater inflater,ViewGroup container, Bundle savedInstanceState) {
  9.  
  10. final int index = getArguments().getInt("index", 0);
  11. rnd = new Random(System.currentTimeMillis());
  12. final View view = inflater.inflate(R.layout.listfragment, container, false);
  13. final RecyclerView rv = view.findViewById(R.id.list);
  14. final Button addButton = view.findViewById(R.id.button);
  15.  
  16. dataModels = new ArrayList<Processor>();
  17.  
  18.  
  19. for (int i = 0; i<index; i++){
  20. dataModels.add(getProcessor(i));
  21. }
  22.  
  23. sortByPrioritet();
  24.  
  25. addButton.setOnClickListener(this);
  26. rv.setHasFixedSize(true);
  27. rv.setLayoutManager(new LinearLayoutManager(getActivity()));
  28. adapter = new ProcessorAdapter(dataModels);
  29. final Handler handler = new Handler(Looper.getMainLooper());
  30.  
  31. handler.postDelayed(new Runnable() {
  32. public void run() {
  33. for (int i=0;i<dataModels.size();i++) {
  34.  
  35. dataModels.remove(getProcessor(i).getPrioritet());
  36. adapter.notifyDataSetChanged();
  37. }
  38. if (dataModels.size() > 0)
  39. handler.postDelayed(this, 3000);
  40. }
  41. }, 3000);
  42. rv.setAdapter(adapter);
  43. return view;
  44. }
  45.  
  46. // метод сортирует коллекцию по приоритету (полю prioritet)
  47. private void sortByPrioritet() {
  48. Collections.sort(dataModels, new Comparator<Processor>() {
  49. @Override
  50. public int compare(Processor o1, Processor o2) {
  51. return o1.getPrioritet().compareTo(o2.getPrioritet());
  52. }
  53. });
  54. }
  55.  
  56. // метод генерирует новый процессор
  57. private Processor getProcessor(int i) {
  58.  
  59. int p = 1 + rnd.nextInt(10 - 1 + 1);
  60. int t = 6 + rnd.nextInt(22 - 6 + 1);
  61. int r = 100 + rnd.nextInt(1000 - 100 + 1);
  62. return new Processor(i, p, t, r);
  63. }
  64.  
  65. @Override
  66. public void onClick(View v) {
  67.  
  68. // добавляем еще один процессор, сортируем и обновляем список
  69. dataModels.add(getProcessor(3));
  70. sortByPrioritet();
  71. adapter.notifyDataSetChanged();
  72. }
  73. }
Add Comment
Please, Sign In to add comment