Pergunta

Eu baixei o ActionBarSherlock versão 4.1.0.0, e adicionado um Android biblioteca de Projeto no Eclipse 4.2 no meu Win7 java 1.6 atualização de 24 de máquina.Eu usei um Projeto Eclipse Destino de Compilação do Android 4.1 no Project | Properties | Projecto de construção de Destino.Gostaria de incorporar a ActionBar funcionalidade em um aplicativo existente que tem minSdkVersion="7".Observei o código do ActionBarSherlock biblioteca parece ter algum preterido métodos, e uma mensagem de erro:

Exemplo 1:ActionBarContainer.java, ActionBarContextView.java, ScrollingTabContainerView.java - usa setBackgroundDrawable - O método setBackgroundDrawable(Drawable) a partir do tipo de modo de Exibição é preterido

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 como Adicionar @SupressWarnings 'substituição' para ActionBarContainer

Exemplo 2:IcsProgressBar.java usa animationResolution que mostra como obsoletos, mesmo quick fix acima

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

Também, eu tenho um erro no ActivityChooserView.java:

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

O erro está em SetActivated - Chamada requer API 11 (actual min é de 7).Isso faz sentido, com base no manifesto:

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

Não deve API 7 ser bom, pois Action Bar Sherlock deve funcionar no Android 2.x?Tem outros experimentaram este, e, em caso afirmativo, qual é a ação recomendada?Suprimir, ignorar a substituição?O que sobre o erro no SetActivated?Revi o leia-me e fiz algumas net pesquisas, mas não veio nada sobre isso.Obrigado por todas as sugestões.

Obrigado!

Foi útil?

Solução

Ele é apenas multa.O código é 2.x compatível e até mesmo alguns métodos são preteridos como de 4.x, eles ainda estão lá.Também não quero dizer que em 4.x estas preterido métodos serão usados.A fonte é de 2.x-4.x assim, não há outra maneira (para não mencionar a reflexão, mas que iria prejudicar o desempenho, e é para agora, não é necessária).Portanto, é seguro para simplesmente ignorar isso.Provavelmente seria melhor voltar depreciação fora para determinados arquivos, mas ele não está lá.Então não se preocupe.

Outras dicas

Este é, realmente, não responder à pergunta, mas eu tive o mesmo problema quando eu tinha que ter um minSdkVersion 9 e eu queria que o ActionBarSherlock mas eu estava recebendo o mesmo erro da actionBar requer minSdkVersion 11.

Aparentemente, em ADT 21.1 você fazer uma values-v11/styles.xml e colocar a actionBar lá.

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top