这是我的问题:
我一直试图在我的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);
}
}
答案 0 :(得分:2)
您不需要包含支持包,因为ActionBarSherlock包含支持包(并对其进行了增强)。如果您检查ActionBarSherlock源,您将看到android.support.v4.*
类。
我得到getSupportActionBar()重新调整null,直到我重新阅读usage instructions,特别是关于父主题。
为了让操作栏在3.0之前的设备上运行,您的 活动必须使用Theme.Sherlock或Theme.Sherlock.Light,或者你的 自定义主题必须使用上述两个中的一个作为其父级。
包含在申请元素
中<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/Theme.Sherlock">