ActionBarSherlock Возвращает нулевое значение в приложении для Android - PullRequest
0 голосов
/ 02 ноября 2011

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

Я пытался получить 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);

}

}

1 Ответ

2 голосов
/ 26 ноября 2011

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

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

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

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

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