3

我试图让一个进度表在 ActionBarActivity 中工作,这样我就可以在运行 api 7 的设备上使用片段。

结果正常活动,这就是我想要的。:

正常活动

带有 actionbaractivity 的结果:

在此处输入图像描述

我的代码:

//The progress bar only works with a normal activity but not with an ActionBarActivity
public class TestActivity extends Activity { //now produces image 1, replace this with a ActionBarActivity and it produces image 2.

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_register);
    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.bluethooth, menu);

        //Code below is from http://stackoverflow.com/questions/20402912/android-actionbar-compatibility-menuitem-setactionviewview
        MenuItem item = menu.findItem(R.id.menu_refresh);
        MenuItemCompat.setActionView(item, R.layout.actionbar_indeterminate_progress);

        return true;
    }
}

活动注册.xml:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".RegisterActivity"
    tools:ignore="MergeRootFrame" />

actionbar_indeterminate_progress.xml

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
         android:layout_height="wrap_content"
         android:layout_width="wrap_content">
<ProgressBar android:layout_width="32dp"
             android:layout_height="32dp"
             android:layout_gravity="center"/>
</FrameLayout>

蓝牙.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/menu_refresh"
      android:checkable="false"
      android:orderInCategory="1"
      android:showAsAction="ifRoom"
      android:actionLayout="@layout/actionbar_indeterminate_progress"/>
<item android:id="@+id/menu_scan"
      android:title="@string/menu_scan"
      android:orderInCategory="100"
      android:showAsAction="ifRoom|withText"/>
<item android:id="@+id/menu_stop"
      android:title="@string/menu_stop"
      android:orderInCategory="101"
      android:showAsAction="ifRoom|withText"/>
</menu>

我也试过:

 SupportMenuItem item = (SupportMenuItem) menu.findItem(R.id.menu_refresh);
 MenuItemCompat.setActionView(item, R.layout.actionbar_indeterminate_progress);

 SupportMenuItem item = (SupportMenuItem) menu.findItem(R.id.menu_refresh);
 item.setActionView(R.layout.actionbar_indeterminate_progress);

但以上代码均无效。

我究竟做错了什么?

编辑:我如何将问题标记为已回答?

4

0 回答 0