Domanda

Ho scaricato il ActionBarSherlock versione 4.1.0.0, e ha aggiunto un Android libreria di Progetto in Eclipse 4.2 sul mio Win7 java 1.6 aggiornamento 24.Ho usato un Progetto Eclipse Target Build di Android 4.1 in Progetto | Proprietà | Progetto di costruzione di Destinazione.Voglio inserire la ActionBar funzionalità in un'applicazione esistente che ha minSdkVersion="7".Ho notato che il codice da ActionBarSherlock libreria sembra avere alcuni metodi deprecati, e un errore:

Esempio 1:ActionBarContainer.java, ActionBarContextView.java, ScrollingTabContainerView.java - utilizza setBackgroundDrawable - Il metodo setBackgroundDrawable(Drawable) dal tipo di visione è sconsigliata

public ActionBarContainer(Context context, AttributeSet attrs) {
    super(context, attrs);

    setBackgroundDrawable(null);

    TypedArray a = context.obtainStyledAttributes(attrs,
            R.styleable.SherlockActionBar);
    mBackground = a.getDrawable(R.styleable.SherlockActionBar_background);
    mStackedBackground = a.getDrawable(
            R.styleable.SherlockActionBar_backgroundStacked);

    if (getId() == R.id.abs__split_action_bar) {
        mIsSplit = true;
        mSplitBackground = a.getDrawable(
                R.styleable.SherlockActionBar_backgroundSplit);
    }
    a.recycle();

    setWillNotDraw(mIsSplit ? mSplitBackground == null :
            mBackground == null && mStackedBackground == null);
}

Quick fix mostra come Aggiungere @SupressWarnings 'negativi' per ActionBarContainer

Esempio 2:IcsProgressBar.java utilizza animationResolution che mostra come obsoleto, stesso quick fix come sopra

private static final int[] ProgressBar = new int[] {
    ...
    android.R.attr.animationResolution

Inoltre, ho un errore in ActivityChooserView.java:

private static class SetActivated {
    public static void invoke(View view, boolean activated) {
        view.setActivated(activated);
    }
}

Errore è SetActivated - Chiamata richiede API 11 (corrente min 7).Questo ha un senso, basato sul manifesto:

<uses-sdk android:minSdkVersion="7" android:targetSdkVersion="15"/>

Non dovrebbe API 7 va bene, poiché l'Azione Bar Sherlock di lavoro a Andriod 2.x?Gli altri hanno fatto questa esperienza, e se è così, qual è l'azione consigliata?Casa/ignorare la rimozione?Che cosa circa l'errore sul SetActivated?Ho rivisto il file leggimi e fatto qualche net ricerche, ma non è venuto in mente nulla su questo.Grazie per qualsiasi suggerimento.

Grazie!

È stato utile?

Soluzione

È bene.Il codice è 2.x compatibile e anche alcuni metodi deprecati 4.x, è ancora lì.Esso, inoltre, non significa che 4.x questi metodi deprecati verrà utilizzato.La fonte è di 2.x-4.x cui non c'è altro modo (per non parlare di riflessione, ma che vorrei compromettere le prestazioni, e, per adesso, non è necessario).In questo modo è sicuro di ignorare questo.Probabilmente sarebbe meglio rivolgersi ammortamenti off per alcuni file, ma non c'è.Quindi non preoccupatevi.

Altri suggerimenti

Questo è in realtà non rispondere alla domanda, ma ho lo stesso problema quando ho avuto bisogno di un minSdkVersion 9 e volevo avere ActionBarSherlock ma mi è stato sempre lo stesso errore della actionBar richiede minSdkVersion 11.

A quanto pare in ADT 21.1 fare un values-v11/styles.xml e mettere la actionBar in là.

https://code.google.com/p/android/issues/detail?id=48283

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top