我正在尝试使用ActionbarSherlock示例来添加列表导航。在示例中,有一些代码如下:
@Override
public void onCreate(Bundle savedInstanceState) {
setTheme(SampleList.THEME); //Used for theme switching in samples
super.onCreate(savedInstanceState);
setContentView(R.layout.list_navigation);
mSelected = (TextView)findViewById(R.id.text);
mLocations = getResources().getStringArray(R.array.locations);
Context context = getSupportActionBar().getThemedContext();
ArrayAdapter<CharSequence> list = ArrayAdapter.createFromResource(context, R.array.locations, R.layout.sherlock_spinner_item);
list.setDropDownViewResource(R.layout.sherlock_spinner_dropdown_item);
getSupportActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
getSupportActionBar().setListNavigationCallbacks(list, this);
}
似乎就是这样。所以我很困惑,我可以添加导航标题。它还引用了
ArrayAdapter<CharSequence> list = ArrayAdapter.createFromResource(
context, R.array.locations, R.layout.sherlock_spinner_item);
我的代码不知道R.array.locations并给出语法错误。但是R.array.locations不在示例中。我应该在布局目录中为它创建一个单独的文件吗?
谢谢!
答案 0 :(得分:1)
但是R.array.locations不在示例中
<string-array name="locations">
<item>Home</item>
<item>Email</item>
<item>Calendar</item>
<item>Browser</item>
<item>Clock</item>
</string-array>
答案 1 :(得分:1)
关于编译错误:您是否创建了名为“locations”的数组资源?
/ RES /值/阵列
<resources>
<string-array name="locations">
<item>Foo</item>
<item>Bar</item>
<item>Baz</item>
</string-array>
</resources>
关于为下拉列表提供特殊的“tile”:即使它被称为“List Navigation”,你在Action Bar中实际看到的内容(包括native和ActionBarSherlock)都是一个Spinner。所以你可以给它任何SpinnerAdapter,它会使用它。
如果您不熟悉适配器,我强烈建议您watch this video。 ListView的适配器和Spinner的适配器之间的唯一区别是getDropDownView()方法,该方法创建显示在下拉菜单中的视图(其中getView()提供了微调器内容区域中显示的视图)。 p>