Встроенные типы, когда (не) использовать?

Я считаю, что вопрос в этом контексте рассматривается в разных контекстах на основе ответов здесь. Согласно оценке, требуется умение сосредоточиться на конкретном предмете BottomNavigationView (определенно в новом классе, содержащем разные фрагменты).

Теперь у вас могут быть кнопки BottomNavigationView OR или Anything, нажимаемые для запуска нового действия по назначению: - т.е.

Intent intent = new Intent(getActivity(), New_Activity.class);
    intent.putExtra("EXTRA_PAGE, 1);
    startActivityForResult(intent, 30);

Затем - в нашей New_Activity, мы получаем намерение-

Intent intent = getIntent (); int page = intent.getExtras (). getInt ("EXTRA_PAGE);

Затем мы перебираем переменную страницы, чтобы найти число / индекс , для которого текущий BottomNavigationView отражает, ТОГДА мы устанавливаем наш пункт меню фокуса (при условии, что у вашего BottomNavigationView есть пункт меню для его отображения)

     if(page == 1) {
         currentselect = new Pending();
            bottomNavigationView.getMenu().getItem(0).setChecked(true);
}

Это отвечает на вопрос выше. Остальная часть переключателя фрагмента обрабатывается ну по количеству постов выше, вызвав:

bottomNavigationView.setOnNavigationItemSelectedListener(navListener);

Тогда что-то вроде:

   private BottomNavigationView.OnNavigationItemSelectedListener navListener =
        new BottomNavigationView.OnNavigationItemSelectedListener(){
            @Override
            public boolean onNavigationItemSelected(@NonNull MenuItem item) {
                Fragment selectedFrag = null;
                switch (item.getItemId()) {
                    case R.id.pending:
                        selectedFrag = new Pending();
                        break;
                    case R.id.onTransmit:
                        selectedFrag = new inTransmit();
                        break;
                    case R.id.complete:
                        selectedFrag = new Complete();
                        break;
                }

                getSupportFragmentManager().beginTransaction().replace(R.id.select_field, selectedFrag).commit();

                return true;
            }
        };

ПРИМЕЧАНИЕ: Использование BottomNavigationView и ContentFrameLayout очень экономичны и сократят ваш код до 50% в отличие от использования подобных ViewPager и Tablayout

7
задан Adrian Godong 26 May 2009 в 16:19
поделиться

6 ответов

Типы языка (например, string, int, char) - это просто псевдонимы для типов CLR (System.String, System.Int32, System.Char).

Они взаимозаменяемы, нет необходимости предпочитать одно другому.

15
ответ дан 6 December 2019 в 04:44
поделиться

Единственный раз, когда я когда-либо явно использовал " System.XYZ" вместо ключевого слова встроенного типа, это когда мне нужен целочисленный тип очень определенного размера, и я хочу, чтобы это было понятно любому, кто читает мой код (например, я мог бы использовать Int32 вместо int , если рассматриваемое целое число на самом деле представляет собой 4 8-битных поля, упакованных вместе.)

14
ответ дан 6 December 2019 в 04:44
поделиться

Я почти всегда использую встроенные псевдонимы, такие как int / short / long. Их легче читать, и они не требуют, чтобы вы импортировали System или вводили System.Int32 везде и т. Д.

Язык четко определяет их и придает им конкретное значение, поэтому я не вижу никакого вреда. Однако это на 100% личный выбор.

При этом, единственное место, где я явно использую Int32, Int16 и т. Д., - это когда я имею дело с двоичным хранением или передачей, особенно в или из пользовательского двоичный формат. В этом случае наличие явного битового размера каждого члена, входящего и выходящего из файла, делает код более читаемым и понятным, IMO.

37
ответ дан 6 December 2019 в 04:44
поделиться

Использование "int" и "Int32" (и других) абсолютно одинаково. Обычно используются ключевые слова (int, Integer (vb.net), bool и т. Д.), Потому что они короче и выделены в IDE.

2
ответ дан 6 December 2019 в 04:44
поделиться

Вместо того, чтобы использовать или не использовать языковые типы по сравнению с явными именами классов BCL, более важно знать, соответствует ли тип, который вы собираетесь использовать, CLS.

В частности, целочисленные типы без знака не совместимы с CLS, потому что нет требования, чтобы язык поддерживал целочисленные математические выражения без знака.

Кроме этой морщинки ... Я бы порекомендовал любую идиому, которая больше соответствует практике программирования вашей организации . Если вы полностью используете пространство имен для ссылок на типы, я бы продолжил этот шаблон с пространством имен System. * ... (хотя я бы также рекомендовал отказаться от этой практики, поскольку она увеличивает нагрузку на читателя без сопутствующего увеличения ясности).

1
ответ дан 6 December 2019 в 04:44
поделиться

Я всегда использую типы System. * , потому что они выглядят более согласованными между другими классами - первая буква верхнего регистра и такая же подсветка синтаксиса. Но это всего лишь личные предпочтения и чисто эстетический вопрос.

5
ответ дан 6 December 2019 в 04:44
поделиться