Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class ListFragment extends Fragment implements View.OnClickListener{
- ArrayList dataModels;
- Random rnd;
- ProcessorAdapter adapter;
- @Override
- public View onCreateView(LayoutInflater inflater,ViewGroup container, Bundle savedInstanceState) {
- final int index = getArguments().getInt("index", 0);
- rnd = new Random(System.currentTimeMillis());
- final View view = inflater.inflate(R.layout.listfragment, container, false);
- final RecyclerView rv = view.findViewById(R.id.list);
- final Button addButton = view.findViewById(R.id.button);
- dataModels = new ArrayList<Processor>();
- for (int i = 0; i<index; i++){
- dataModels.add(getProcessor(i));
- }
- sortByPrioritet();
- addButton.setOnClickListener(this);
- rv.setHasFixedSize(true);
- rv.setLayoutManager(new LinearLayoutManager(getActivity()));
- adapter = new ProcessorAdapter(dataModels);
- final Handler handler = new Handler(Looper.getMainLooper());
- handler.postDelayed(new Runnable() {
- public void run() {
- for (int i=0;i<dataModels.size();i++) {
- dataModels.remove(getProcessor(i).getPrioritet());
- adapter.notifyDataSetChanged();
- }
- if (dataModels.size() > 0)
- handler.postDelayed(this, 3000);
- }
- }, 3000);
- rv.setAdapter(adapter);
- return view;
- }
- // метод сортирует коллекцию по приоритету (полю prioritet)
- private void sortByPrioritet() {
- Collections.sort(dataModels, new Comparator<Processor>() {
- @Override
- public int compare(Processor o1, Processor o2) {
- return o1.getPrioritet().compareTo(o2.getPrioritet());
- }
- });
- }
- // метод генерирует новый процессор
- private Processor getProcessor(int i) {
- int p = 1 + rnd.nextInt(10 - 1 + 1);
- int t = 6 + rnd.nextInt(22 - 6 + 1);
- int r = 100 + rnd.nextInt(1000 - 100 + 1);
- return new Processor(i, p, t, r);
- }
- @Override
- public void onClick(View v) {
- // добавляем еще один процессор, сортируем и обновляем список
- dataModels.add(getProcessor(3));
- sortByPrioritet();
- adapter.notifyDataSetChanged();
- }
- }
Add Comment
Please, Sign In to add comment