android – 设置操作栏项的下拉列表
作者:互联网
我通过以下代码设置操作栏和项目,并显示相应的image1.当用户点击显示书签屏幕操作项时,它将转到其他活动.在那个活动中,我希望在SHOW BOOKMARK SCREEN的位置显示另一个项目(SELECT BOOKMARK TYPE).所以我想通过将相应的事物设置为真或假来用抽象类来管理它,如下所示.但现在我无法得到两件事.
1)如何区分两个动作项的情况0?因为我正在互相替换行动项目.
2)如何获得图像2中精确显示的SELECT BOOKMARK TYPE的下拉列表.
看过很少的帖子,但由于我对android有点新,我无法理解并通过在我现在的代码中添加额外的代码来完成它.你能帮帮我吗?代码片段表示赞赏.提前致谢.
public abstract class ActionActivity extends SherlockActivity {
protected boolean mIsShowBookmarkScreen = true;
@Override
public boolean onCreateOptionsMenu(Menu menu) {
if(mIsShowBookmarkScreen)
{
menu.add("SHOW BOOKMARK SCREEN")
.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
}
else
{
menu.add(SELECT BOOKMARK TYPE);
.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
}
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
//This uses the imported MenuItem from ActionBarSherlock
switch(item.getItemId())
{
case 0:
Intent intent = new Intent(ActionActivity.this,BookmarkScreen.class);
startActivity(intent);
return true;
}
return false;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getSupportActionBar().setHomeButtonEnabled(true);
}
}
图1:
图片2:
至少有人可以请求帮助实现第二个.我对第一个问题有了一个想法.
解决方法:
1)使用instanceof进行区分.
if (this instanceof ActivityA) {
// start Intent A
} else if (this instanceof ActivityB) {
// start Intent B
}
2)添加一个微调器作为自定义ActionView.
<string-array name="items">
<item>SELECT BOOKMARK TYPE</item>
<item>TYPE-1</item>
<item>TYPE-2</item>
<item>TYPE-3</item>
</string-array>
MenuItem spinnerItem = menu.add(null);
spinnerItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
IcsSpinner spinner = new IcsSpinner(this, null);
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
this, R.array.items, R.layout.sherlock_spinner_item);
adapter.setDropDownViewResource(R.layout.sherlock_spinner_dropdown_item);
spinner.setAdapter(adapter);
spinner.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT,
LayoutParams.MATCH_PARENT));
spinnerItem.setActionView(spinner);
请注意,我在这里使用私有的IcsSpinner来创建SDK Version< 4.0.有关详细信息,请参见此answer.
如果您想进一步自定义Spinner,您可能需要创建自己的适配器.
标签:android,actionbarsherlock,android-actionbar,dropdownbox 来源: https://codeday.me/bug/20190709/1411919.html