0

这是我的问题:

我一直试图在我的 Android 2.3 应用程序中获得一个 ActionBar。我决定使用 ActionBarSherlock。我通过导入 ZIP 然后将其作为库创建了一个新项目。

我将它作为库添加到我当前的项目中。

除非我删除了兼容性库,否则它将无法工作(转换为 Dalvik 格式失败,错误 1)

所以我删除了它,编译时没有更多的错误。但是当我尝试使用它时,它总是返回 null。我不确定我是否遗漏了一些小东西或什么,但这已经让我发疯了一段时间。任何建议将不胜感激。这里还有一些代码片段:

显现:

<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);

}

}

4

1 回答 1

2

您不需要包含支持包,因为 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">
于 2011-11-26T15:42:05.400 回答