ActionBarSherlock возвращает нулевое значение в приложении для Android

Вот моя проблема:

Я пытался получить ActionBar в своем приложении для Android 2.3. Я решил использовать ActionBarSherlock. Я создал новый проект, импортировав ZIP-файл, а затем сделав его библиотекой.

Я добавил его как библиотеку в свой текущий проект.

Тогда это не сработает, если я не удалю библиотеку совместимости (преобразование в формат Dalvik не удалось с ошибкой 1)

Поэтому я удалил его и больше никаких ошибок при компиляции. Но когда я пытаюсь его использовать, он всегда возвращает ноль. Я не уверен, что я пропустил что-то маленькое или что-то еще, но это уже некоторое время сводило меня с ума. Мы будем очень признательны за любые советы. Вот также несколько фрагментов кода:

Манифест:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="com.StuMan"
  android:versionCode="1"
  android:versionName="1.0"
  android:theme="@style/Theme.Sherlock">
<uses-sdk android:minSdkVersion="4"
          android:targetSdkVersion="13" />

И затем вызов, который я делаю в своей деятельности:

import java.util.ArrayList;
import com.StuMan.R;
import android.app.ActionBar;
import android.app.Activity;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.support.v4.view.Window;
import android.widget.ArrayAdapter;
import android.widget.GridView;
import android.widget.Toast;

public class WelcomeGrid extends FragmentActivity{

private ArrayList<String> parts = new ArrayList<String>();
final String [] items=new String[]{"Classes", "Calendar", "To-Do List"};

@Override
public void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.welcome_grid);
    requestWindowFeature(Window.FEATURE_ACTION_BAR_ITEM_TEXT);

    Toast.makeText(getApplicationContext(), String.valueOf(getSupportActionBar().isShowing()), Toast.LENGTH_LONG);

    GridView gv = (GridView)findViewById(R.id.gv_welcome);
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, items);

    gv.setAdapter(adapter);

}

}


person user1025519    schedule 02.11.2011    source источник


Ответы (1)


Вам не нужно включать пакет поддержки, так как ActionBarSherlock содержит пакет поддержки (и расширяет его). Если вы проверите исходный код ActionBarSherlock, вы увидите android.support.v4.* классы.

Я получал getSupportActionBar() с перенастройкой null, пока не вернулся, чтобы перечитать инструкции по использованию, в частности о родительских темах.

Чтобы панель действий работала на устройствах до версии 3.0, ваша активность должна использовать Theme.Sherlock или Theme.Sherlock.Light, или ваша пользовательская тема должна использовать одну из двух вышеупомянутых в качестве родительской.

Включить в элемент приложения

<application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" 
        android:theme="@style/Theme.Sherlock">
person scottyab    schedule 26.11.2011