Я использую этот класс от моей основной деятельности:Управление Android версии: с использованием различных классов для каждой версии
public class MediaInfo {
public String name;
public String label;
// ... (other String and int fields)
public MediaSession mSession;
}
внутри ArrayList:
public class MainActivity extends ActionBarActivity implements AsyncResponse {
private static final String TAG = "MainActivity";
ArrayList<MediaInfo> myMediaList;
private Context mContext;
public void onCreate(Bundle savedInstanceState) {
// ...
}
// ...
}
Проблема у меня есть, что MediaSession является класс, который принадлежит Android API версии 21, и я пытаюсь сделать приложение с версии 14 на.
Я хотел бы, чтобы активность (или класс) игнорировала поле, содержащее класс MediaSession, когда версия < 21. Первая идея, с которой я столкнулся, - это использовать абстрактный класс и расширить его, когда версия> = 21, но тогда мне придется объявлять разные ArrayLists, и я не знаю, как это сделать. И, возможно, это не лучший способ ...
Любые идеи ...?
Спасибо за ваши советы
Хорошо, спасибо, я буду искать его. Во всяком случае, в чем дело, если нет совместимой версии? Можно ли учесть поля классов для версии, а не для других ...? – xagutxu
Как правило, если это важная функция, Google добавит совместимую версию. В противном случае вам нужно будет выполнить ответ Yair и проверить уровень API устройства перед использованием новой функции. Если API ниже, вам придется реализовать функциональность, используя старый/устаревший способ. Вы можете использовать новую функцию как объявленную переменную, просто нужно иметь в виду проверить уровень API перед ее использованием. Надеюсь, это поможет и счастливое кодирование! – user3829751