Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/190.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 夏洛克动作栏中的文本视图_Java_Android - Fatal编程技术网

Java 夏洛克动作栏中的文本视图

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

我有一个应用程序,我想在动作栏sherlock中显示当前的章节号。My menu.xml看起来像:

<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);
}