Создание параметра битовой маски для функции или метода

Я заметил, что много функций Android имеет параметр, в котором можно передать, это - битовая маска, для различных вариантов, как на PendingIntent, можно передать в вещах как Вы, может назвать getActivity () с PendingIntent.FLAG_CANCEL_CURRENT|PendingIntent.FLAG_NO_CREATE.

Я задаюсь вопросом, как я могу создать функцию, которая имеет параметр как это?

5
задан synic 30 April 2010 в 19:51
поделиться

2 ответа

public static final int FLAG_1 = 1<<0; // 0x01
public static final int FLAG_2 = 1<<1; // 0x02
public static final int FLAG_3 = 1<<2; // 0x04
public static final int FLAG_4 = 1<<3; // 0x08

public void myFlagsFunction( int flags ) {
  if ( 0 != ( flags & FLAG_1 ) ) {
    // do stuff
  }
  if ( 0 != ( flags & FLAG_2 ) ) {
    // do stuff
  }
}
10
ответ дан 13 December 2019 в 19:23
поделиться

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

public static final int FLAG_ONE_SHOT = 1<<30;
//...
public static final int FLAG_NO_CREATE = 1<<29;
1
ответ дан 13 December 2019 в 19:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: