私は4つの主要なセクションを持つアプリを作成しています。非常に簡単なナビゲーション方法が必要です。つまり、電話がアクションバーをサポートしている場合は、タブ付きのアクションバーを表示したいと思います。それ以外の場合は、メニューを表示する通常のメニューボタンで問題ありません。
問題は、実際にアクションバーをサポートするSDKバージョンの電話で試してみると、アクションバーの継ぎ目が管理できないか作成されていないことです。
menu / menu.xmlファイルを使用して、表示したいメニューとアイテムを作成しています。次に、onCreateOptionsMenu()とMenuInflaterを使用して、各アクティビティのメニューにデータを入力しています。これはすべての電話で問題なく機能しますが、アクションバーを使用する電話では、左端にアプリアイコン、横に現在のアクティビティタイトルが表示され、右端に次のアイコンが表示されるタイトルタイプのバーが表示されます。最初のメニュー項目の後に3つの正方形が続きます(これらをクリックすると、残りのメニュー項目が表示されます)。この状況は、私が行っているアクティビティに関係なく同じです。
私が欲しいのは、アイコンとテキスト(テキスト用のスペースがある場合)の代わりにタブ付きアクションバーを表示し、ユーザーが表示している現在のアクティビティをタブ付きアクションバーで「選択」することです。ここに示されているのと同じ方法:
http://developer.android.com/images/ui/actionbar.png(新規ユーザーのため画像にできません)
これが私が使用しているコードです:
マニフェスト.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
package="com.mypackage"
android:versionCode="1"
android:versionName="1.0" >
<uses-permission
android:name="android.permission.INTERNET" />
<uses-permission
android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission
android:name="android.permission.READ_PHONE_STATE" />
<uses-sdk
android:minSdkVersion="10"
android:targetSdkVersion="15" />
<application
android:icon="@drawable/icon"
android:label="@string/app_name"
android:theme="@android:style/Theme.Holo">
<uses-library android:name="com.google.android.maps" />
<activity
android:name=".ActivityLoad"
android:label="label">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
....more activities....
</application>
</manifest>
menu.xml
<?xml version="1.0" encoding="utf-8"?>
<menu
xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/menuMap"
android:title="@string/A_MAP_TITLE"
android:icon="@drawable/nav_map"
android:showAsAction="ifRoom|withText">
</item>
<item
android:id="@+id/menuList"
android:title="@string/A_LIST_TITLE"
android:icon="@drawable/nav_list"
android:showAsAction="ifRoom|withText">
</item>
<item
android:id="@+id/menuMore"
android:title="@string/A_MORE_TITLE"
android:icon="@drawable/nav_more"
android:showAsAction="ifRoom|withText">
</item>
<item
android:id="@+id/menuReport"
android:title="@string/A_REPORT_TITLE"
android:icon="@drawable/nav_report"
android:showAsAction="ifRoom|withText">
</item>
</menu>
MyActivity.java
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.options, menu);
return super.onCreateOptionsMenu(menu);
}
アクティビティのonCreate()メソッドでこのコードを使用してアクションバーのナビゲーションモードを設定しようとしましたが、デフォルトで表示される「不良」アクションバーの下に空白のアクションバーが表示されます。
ActionBar actionBar = getActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
すべてのチュートリアルは、「スタイルを使用する」などと言っているだけですが、スタイルxmlファイルをどこに配置するか、これをメニューに設定する方法、または実際にここで何をすべきかがわかりません。誰かが助けることができればそれは大いにありがたいです!