Sì! Puoi sicuramente farlo. Prova a seguire lo schema descritto di seguito.
Nel file AndroidManifest.xml
dichiarare la seguente (sostituendo le versioni della piattaforma con qualunque sia la vostra applicazione richiede):
<!-- Build Target -->
<uses-sdk android:targetSdkVersion="14" android:minSdkVersion="7" />
Prendendo di mira una versione della piattaforma di API 11 o superiore, si consente Eclipse per collegare (compilazione) contro le classi native di ActionBar. Fornire una versione precedente della piattaforma minima consente di installare la tua app (esecuzione) su versioni precedenti di Android.
Il codice di attività dovrebbe quindi essere simile a questa:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (CompatibilityManager.isHoneycomb()) {
final ActionBar actionBar = getActionBar();
actionBar.setDisplayShowHomeEnabled(true);
// ...
} else {
// The ActionBar is unavailable!
// ...
}
}
dove la classe CompatibilityManager.java
fornisce semplicemente metodi di supporto statici per determinare la versione corrente del SDK:
public class CompatibilityManager {
public static final String KINDLE_FIRE_MODEL = "Kindle Fire";
/**
* Get the current Android API level.
*/
public static int getSdkVersion() {
return android.os.Build.VERSION.SDK_INT;
}
/**
* Determine if the device is running API level 11 or higher.
*/
public static boolean isHoneycomb() {
return getSdkVersion() >= Build.VERSION_CODES.HONEYCOMB;
}
/**
* Determine if the device is running API level 14 or higher.
*/
public static boolean isIceCreamSandwich() {
return getSdkVersion() >= Build.VERSION_CODES.ICE_CREAM_SANDWICH;
}
/**
* Determine if the current device is a first generation Kindle Fire.
* @return true if the device model is equal to "Kindle Fire", false if otherwise.
*/
public static boolean isKindleFire() {
return Build.MODEL.equals(KINDLE_FIRE_MODEL);
}
}
Si potrebbe anche prendere in considerazione sfruttando la libreria ActionBarSherlock, che fornisce un'API ActionBar compatibile fino ad Android 2.x:
La libreria utilizzerà automaticamente la barra di azione nativa quando è disponibile o verrà automaticamente inserita un'implementazione personalizzata attorno ai formati . Ciò consente di sviluppare facilmente un'applicazione con una barra delle azioni per ogni versione di Android fino alla 2.x.
Buon divertimento!
Ulteriori documentazione sulla compatibilità con le versioni precedenti sono disponibili su http://developer.android.com/resources/articles/backward-compatibility.html La documentazione sulla barra delle azioni copre anche questo e come utilizzarlo in un modulo di base ed essere ancora compatibile con le versioni precedenti. http://developer.android.com/guide/topics/ui/actionbar.html#Adding – cistearns
Ok, ho fatto un codice simile. Proverò anche il tuo suggerimento. Il problema che ho scoperto è che quando ho provato a eseguire l'app e l'emulatore (in eclissi) è comparso, sono comparsi solo i dispositivi del livello di destinazione. Finalmente ho utilizzato AVD manager per avviare il dispositivo di livello inferiore e quindi lo ho usato specificamente mentre era in esecuzione. Ho scelto di non utilizzare ActionBarSherlock poiché desidero solo la funzione nei nuovi dispositivi per ora. Potrei cambiare idea più tardi. Grazie. –
Dopo aver modificato il target di build e la versione min in AndroidManifest.xml, potrebbe essere necessario comunicare a Eclipse che il target di compilazione è stato modificato. Per fare ciò, è possibile fare clic con il tasto destro del mouse sul progetto e selezionare 'Proprietà'.Quindi seleziona 'Android' nel menu a sinistra e assicurati che il target controllato sia uguale a quello specificato nel manifest. Tutto ciò è aggiornare il file di build 'project.properties' nella directory principale del progetto. – twaddington