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);
しかし、上記のコードはどれも動作しません。
私は何を間違っていますか?
編集:質問を回答済みとしてマークするにはどうすればよいですか?