Articles of android actionbar

如何以编程方式触发/点击Android中的MenuItem?

我在menu_main.xml有这些菜单项 我在onOptionsItemSelected方法中有这个: @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); if (id == R.id.action_restart) { Toast.makeText(MainActivity.this, “Restart…”, Toast.LENGTH_LONG).show(); } if (id == R.id.action_clear) […]

如何在自定义操作栏上获取onClickListener()事件

我正在开发一个应用程序,我必须在单击操作栏自定义视图时获取onClick()事件。 到目前为止,我能够实现以下布局。 这是我实现此目的的代码: @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); getActionBar().setDisplayHomeAsUpEnabled(true); getActionBar().setHomeButtonEnabled(true); getActionBar().setCustomView(R.layout.custom_image_button); getActionBar().setDisplayOptions( ActionBar.DISPLAY_SHOW_HOME | ActionBar.DISPLAY_SHOW_CUSTOM); } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: Toast.makeText(getApplicationContext(), “Clicked on ActionBar”, Toast.LENGTH_SHORT).show(); default: return super.onOptionsItemSelected(item); } } 这是我的custom_image_button布局: 我试图在自定义布局上有一个点击监听器。 为此,我尝试了以下代码: @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); getActionBar().setDisplayHomeAsUpEnabled(true); getActionBar().setHomeButtonEnabled(true); getActionBar().setCustomView(R.layout.custom_image_button); getActionBar().setDisplayOptions( […]

ActionBarSherlock(ABS):如何自定义动作模式关闭项目的文本?

我正在使用ABS vers。 4我需要简单地更改除动作模式关闭图标之外显示的默认“完成”文本,但我真的无法弄清楚如何做到这一点。 我认为文本需要可定制,至少有两个很好的理由: “完成”不适合所有情境(例如“取消”可能更合适,我看过一些应用程序,例如Galaxy Tab上的“我的文件”应用程序,使用它) “完成”需要根据用户的语言进行本地化 是否可以自定义该文本? 如果是这样,谁能告诉我该怎么做? 提前致谢。 编辑 我发现了一个临时的解决方法,我在下面发布: private TextView getActionModeCloseTextView() { // ABS 4.0 defines action mode close button text only for “large” layouts if ((getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_LARGE) { // retrieves the LinearLayout containing the action mode close button text LinearLayout action_mode_close_button = (LinearLayout) getActivity().findViewById(R.id.abs__action_mode_close_button); // if found, […]

PreferenceActivity中的ActionBar

在我的应用程序中,我使用来自Google的新动作栏兼容性示例(位于/samples/android-/ActionBarCompat ),效果很好。 我唯一的问题是将其应用到我的PreferenceActivity ,以获得类似Android Market中的设置的屏幕(见图片)。 要使用图标填充ActionBar ,每个Activity必须扩展ActionBarActivity类。 问题是我的Activity已经扩展了PreferenceActivity并且在Java类中不能扩展多个类。 必须有一种方法将ActionBar与PreferenceScreen一起使用。 如果有人能为这个共同问题提供解决方案,我会很高兴。 PS: 如何向PreferenceScreen添加按钮的解决方案不适合,因为ActionBar实际上是标题栏,所以这更像是Java而不是布局。

动作栏菜单项onclick?

我有一个操作栏,将所有内容放在右上角的菜单中,用户点击该菜单并打开菜单选项。 我在使用它的每个活动上用操作栏菜单膨胀: @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main2, menu); return true; } 我的main2.xml的xml是: 我的问题是我在xml中的项目中放了一个onclick,如果是这样,我在哪里放置它调用的onclick方法? 我是否需要将其添加到我启动此操作栏的每个活动中?

试图在操作栏上隐藏和显示菜单项

我已经查看了有关堆栈溢出的问题,但无法find解决方案。 @Override public boolean onPrepareOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.themenu, menu); MenuItem item = menu.findItem(R.id.menu_settings); MenuItem item2 = menu.findItem(R.id.menu_save); item.setVisible(isdown); item2.setVisible(isdown); return true; } 这会将我的菜单项设置为可见(item1和item2)。 onclick工作得很好 public void inflateTextarea() { if(isdown == true) { isdown = false; LinearLayout tl = (LinearLayout)findViewById(R.id.content); tl.setVisibility(View.VISIBLE); ScaleAnimation scale = new ScaleAnimation(1, 1, 0, 1); scale.setFillAfter(true); scale.setDuration(500); tl.startAnimation(scale); […]

如何向Android活动添加底部菜单

我正在尝试在活动布局的底部添加另一个操作栏或菜单,并保留顶部操作栏。 像这样的东西: 这是我的布局: 我试图添加一个自定义RelativeLayout,看起来几乎像一个操作栏,但工具栏上升,搞砸了一切。

使用ActionBarSherlock时无法解析R错误

我正在尝试使用Jake Wharton的ActionBarSherlock来支持Android项目中的动作栏,一直到1.6 我开始使用常见问题解答页面上提供的video,但是在video中的2:25之后,当他导入项目时,我得到了大量的200个编译器错误列表,主要是处理一些@override的东西。 我通过以下方式解决了大部分错误: 右键单击项目>属性> Java编译器>编译器合规性级别:然后将其设置为1.6。 这迫使重建,突然间我只有54个错误。 其中大多数是“R无法解析为variables”,但最后5个都是“导入com.actionbarsherlock.R无法解析”。 我已经四处寻找,解决这个问题的常用方法如下: “ 确保您的资源没有错误 ” – 我检查了/ res文件夹中没有任何问题 “ 确保你没有导入android.R ” – 我不是。 我有: import com.actionbarsherlock.R 在我看来,包名称可能不正确,但事实并非如此。 “ 简单地清理项目 ” – 多次这样做都没有效果 “ 确保eclipse能够生成R文件 ” – 它可以在我刚刚制作的空白测试项目中 还有一些其他更具体的ActionBarSherlock修复: “ 确保您的targetSDK为11或更高 ” – 它设置为13 “ 确保项目是一个图书馆项目 ” – 它是 我怎样才能摆脱这些错误?

如何停止ActionBar选项卡导航,以便在它变得太长时显示为微调器?

我有一个带有Tab导航的操作栏。 在3.1上运行时一切都很好,但是一旦我在4.1设备上安装了应用程序,那些强制显示为微调器的选项卡会破坏我的布局设计。 看起来这些标签占用了太多空间(如果我删除了一些看起来很好的片段。有没有办法停止这种行为并再次显示导航作为标签,就像在Android 3.1中一样?有人知道吗? 谢谢!

没有在ActionBar中显示的动作项目带有showAsAction =“ifRoom”

我正在尝试将一些操作项添加到我的支持操作栏。 在我的活动中,我还在操作栏中添加了选项卡。 这是活动的摘录: public class ShowEmails extends ActionBarActivity implements ShowEmailsFragmentInteractionListener { private IMAPClientService service; private boolean bound; private ActionBar ab; private MailDBHelper mdbhelper; private SQLiteDatabase db; private Intent client_service; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.client_service = new Intent(this, IMAPClientService.class); this.mdbhelper = new MailDBHelper(this.getApplicationContext(), MailDBHelper.MAIL_DB_NAME, null, MailDBHelper.MAIL_DB_VERSION); this.db = this.mdbhelper.openWriteable(); this.ab = this.getSupportActionBar(); this.ab.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); […]