3

API 7 を実行しているデバイスでフラグメントを使用できるように、ActionBarActivity で進行状況メーターを動作させようとしています。

通常のアクティビティの結果、これが私が望む方法です。:

普段の活動で

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

activity_register.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>

bluethooth.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