Попытка создать класс адаптера для выбора файла.Java в зависимости от версии прошивки.

Я создал два файла.java. Тот, который можно скомпилировать и запустить на телефоне 1.5 (SDK3), а затем тот, который работает на 2.0(SDK5). Так что для этого примера я назову файл 1.5 ExampleOld и новый пример. Мне было интересно, если бы я просто выполнил действие, как это, если бы оно работало как "портал" и выбрало действие для загрузки в зависимости от SDK, чтобы не было сбоев или ошибок компиляции. Есть ли какие-либо изменения, которые я должен внести в свой код? Может быть, кто-нибудь, кто должен был сделать это раньше. Спасибо!

package com.my.app;

import android.app.Activity;
import android.content.Intent;
import android.os.Build;
import android.os.Bundle;

public class ExamplePortal extends Activity { 
    int sdk=new Integer(Build.VERSION.SDK).intValue();

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState);

    if (sdk<5) {
        Intent v = new Intent(this, ExampleOld.class);
        startActivity(v);
    }

    else {
        Intent v = new Intent(this, Example.class);
        startActivity(v);
    } 
}

}

2 ответа

Решение

То, что вы делаете (поправьте меня, если я ошибаюсь), пытается поддерживать обратную совместимость при использовании новых API, если пользователь использует более новую версию для Android. Лучший способ сделать это - следовать руководству Google, опубликованному здесь. Это позволяет избежать каких-либо проблем с проверкой и является действительно лучшим способом сделать что-либо.

Я бы поместил это решение в Factory Class, чтобы избежать использования этих операторов if-else по всей базе кода.

Другие вопросы по тегам