Java 夏洛克动作栏中的文本视图
我有一个应用程序,我想在动作栏sherlock中显示当前的章节号。My menu.xml看起来像:Java 夏洛克动作栏中的文本视图,java,android,Java,Android,我有一个应用程序,我想在动作栏sherlock中显示当前的章节号。My menu.xml看起来像: <menu xmlns:android="http://schemas.android.com/apk/res/android" > <item android:id="@+id/TextView01" android:title=""/> </menu> 任何想法,我们如何显示文本在夏洛克行动栏和动态更新它 Act
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/TextView01"
android:title=""/>
</menu>
任何想法,我们如何显示文本在夏洛克行动栏和动态更新它
ActionBar看起来像:
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/TextView01"
android:title=""/>
</menu>
要实现这一点,您必须在操作栏中使用自定义布局,而不是菜单项 立即创建 您的布局应为:
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="right"
android:layout_marginRight="@dimen/marginMedium"
android:gravity="center_vertical"
android:text="0"
android:textColor="@color/actionbar_number"
android:textSize="28dp"
android:textStyle="bold" />
更新
要添加菜单操作项,您应该能够正常添加,但要小心,如果菜单项出现在操作栏中,自定义布局的位置可能会与菜单项重叠或隐藏
在menu.xml中
要实现这一点,您必须在操作栏中使用自定义布局,而不是菜单项 立即创建 您的布局应为:
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="right"
android:layout_marginRight="@dimen/marginMedium"
android:gravity="center_vertical"
android:text="0"
android:textColor="@color/actionbar_number"
android:textSize="28dp"
android:textStyle="bold" />
更新
要添加菜单操作项,您应该能够正常添加,但要小心,如果菜单项出现在操作栏中,自定义布局的位置可能会与菜单项重叠或隐藏
在menu.xml中
以及如何将操作项添加到此自定义操作栏。与共享操作一样,我只需将其添加到menu.xml中,然后在onCreateOptions菜单方法中膨胀该xml。您应该能够在创建共享操作时创建它。请看更新的答案。这是伟大的工作。但是,这一章的第1号文本所产生的问题是,标识现在不可见。虽然在动作项之间有很多填充。我试着像在上一次会议上提到的那样减少填充物,但没有成功。任何指示。我的帖子里有一个动作栏的图片。哪个标志不再出现了?间距是指动作意图和其他项目之间的间距,您可以做的一件事是将菜单的图标变大!或者通常在每个图标周围使用填充物,我以前遇到过这个问题,我通过一些尝试和错误解决了它。链接是正确的,只要删除了填充和边距,我就会删除填充和边距,只需将填充添加到我的图标图像中。getActionBar.setDisplayShowHomeEnabledtrue;应该显示图标,但默认情况下它应该是可见的。是的,我说的是应用程序图标。一旦我使用DISPLAY\u SHOW\u CUSTOM,图标就消失了。我删除了一些动作图标,并确认这不是因为空间。0dip padding和setDisplayShowHomeEnabledtrue也没有帮助。我是否需要修改我的自定义布局并包括一个imageview和textview,其中imageview显示ic_启动器,textview显示当前章节号?我如何将操作项添加到此自定义操作栏。与共享操作一样,我只需将其添加到menu.xml中,然后在onCreateOptions菜单方法中膨胀该xml。您应该能够在创建共享操作时创建它。请看更新的答案。这是伟大的工作。但是,这一章的第1号文本所产生的问题是,标识现在不可见。虽然在动作项之间有很多填充。我试着像在上一次会议上提到的那样减少填充物,但没有成功。任何指示。我的帖子里有一个动作栏的图片。哪个标志不再出现了?间距是指动作意图和其他项目之间的间距,您可以做的一件事是将菜单的图标变大!或者通常在每个图标周围使用填充物,我以前遇到过这个问题,我通过一些尝试和错误解决了它。链接是正确的,只要删除了填充和边距,我就会删除填充和边距,只需将填充添加到我的图标图像中。getActionBar.setDisplayShowHomeEnabledtrue;应该显示图标,但默认情况下它应该是可见的。是的,我说的是应用程序图标。一旦我使用DISPLAY\u SHOW\u CUSTOM,图标就消失了。我删除了一些动作图标,并确认这不是因为空间。0dip padding和setDisplayShowHomeEnabledtrue也没有帮助。我是否需要修改我的自定义布局并包括一个imageview和textview,其中imageview显示ic_启动器,textview显示当前章节号。?
TextView chapterNumber = (TextView) getSupportActionBar().getCustomView();
chapterNumber.setText(String.valueOf(number));
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/menu_share"
android:actionProviderClass="com.actionbarsherlock.widget.ShareActionProvider"
android:icon="@drawable/ic_menu_share"
android:showAsAction="ifRoom"
android:title="@string/share"
android:visible="false"/>
</menu>
@Override
public boolean onCreateOptionsMenu(Menu menu) {
com.actionbarsherlock.view.MenuInflater inflater = getSupportMenuInflater();
inflater.inflate(R.menu.menu, menu);
// Locate MenuItem with ShareActionProvider
MenuItem item = menu.findItem(R.id.menu_share);
ShareActionProvider shareActionProvider = (ShareActionProvider) item.getActionProvider(); //line 387
Intent shareIntent = new Intent(Intent.ACTION_SEND);
shareIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
shareIntent.setType("text/plain");
shareIntent.putExtra(Intent.EXTRA_TEXT, "Test");
shareIntent.putExtra(Intent.EXTRA_SUBJECT, "Test");
shareActionProvider.setShareIntent(shareIntent);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
onBackPressed();
break;
case R.id.menu_share:
// EXAMPLE OF WHAT YOU CAN DO
// Intent sharingIntent = new Intent(Intent.ACTION_SEND);
// sharingIntent.setType("image/png");
// sharingIntent.putExtra(android.content.Intent.EXTRA_STREAM, Uri.fromFile(f));
// //sharingIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Subject Here");
// //sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, "Body");
// startActivity(Intent.createChooser(sharingIntent, "Share via"));
break;
default:
break;
}
return super.onOptionsItemSelected(item);
}