2012-01-12 4 views
3

私は主にスマートフォンを対象とするアンドロイドアプリを開発しました。しかし、タブレットエミュレータではアンドロイド3.xでも動作することがわかりました。タブレットでオプションメニューを開く方法?

しかし、少し問題があります。ユーザーがメニューボタンをクリックしたときにOptionsMenuを開くことはできません。あなたがスマートフォンで知っているように、メニューが下から表示されます。しかし、タブレットでは何も起こりません。

私はこれをhttp://developer.android.com/guide/topics/ui/menus.html#options-menuと読んでいますが、それでもこれを管理する方法を理解できません。私のアプリはカスタムアクションバーを持っています。

私のコードはかなり単純です。主な活動では:

@Override 
public boolean onCreateOptionsMenu(Menu men) { 
    MenuInflater inflater = getMenuInflater(); 
    inflater.inflate(R.layout.menu, men); 
    return true; 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    // Handle item selection 
    switch (item.getItemId()) { 
    //... 
    } 
} 

そして、環境設定の活動:

public class MdPrefsActivity extends PreferenceActivity { 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     getPreferenceManager().setSharedPreferencesName(
       MdSharedPrefs.PREFS_NAME); 
     addPreferencesFromResource(R.xml.prefs); 
    } 
} 

MdSharedPrefsクラスちょうど県値を書き込む/取得するために、いくつかのゲッターとセッターが含まれています。

タブレットでOptionsMenuをどのように表示できますか?

+0

いくつかのコードを入力できますか? – Daniel

答えて

4

ドキュメントが言ったように: MENUボタンまたは(アンドロイド3.0または 以降を実行しているデバイス上の)アクションバーで[オプション]メニューで

アイテムを2つの異なる方法でアクセスできます。アンドロイド3.0以降で

[...]

、オプションメニューから項目を 伝統的なタイトルバーの代わりに、活動の最上部に表示されます アクションバーに置かれています。デフォルトでは、オプションメニュー のすべての項目がオーバーフローメニューに配置されます。このメニューは、アクションバーの右側にあるメニューアイコン をタッチすると開くことができます。ただし、アンドロイド3.0以上ため

だから、「アクションアイテム、」インスタントアクセスのための [...]としてアクションバーで直接 場所の選択メニュー項目できるあなただけのを見ることができますメニュー項目はActionBarです。

それはそれに気づくことも重要である:

は、Android 3.0(APIレベル11)から始まり、アクションバーはTheme.Holoテーマを使用(またはその の1全ての活動において 含まれています子孫)。 targetSdkVersion属性またはminSdkVersion属性のいずれかが「11」以上に設定されている場合の既定のテーマです。

しかし、あなたが明示的に、タブレット上の

android:theme="@android:style/Theme.Holo.NoActionBar" 
+0

しかし、どのActionBar?私のアプリは既にカスタムバーを持っていますが、カスタムです。 –

+0

@ArtWorkAD ActionBarはアクティビティの先頭に1つだけあります! –

+0

私はそれを隠すわけではありません、私はアンドロイドを持っています:style/Theme.NoTitleBar –

0

のように使用することができます何のハードウェアボタンを、それを隠していないアプリケーションまたは活動テーマを持っていない場合にのみActionBarが表示されていることに注意してくださいメニューをロードするには、最初に呼び出す値-11と2番目の値を呼び出す-114という2つのフォルダを作成する必要があります。これらのフォルダの中に、これらのスタイル(スタイル。上位バージョンのデバイスが使用されるたびに値フォルダにデフォルトのbasethemeを置き換えますXML):

RES /値-11

<!-- 
    Base application theme for API 11+. This theme completely replaces 
    AppBaseTheme from res/values/styles.xml on API 11+ devices. 
--> 
<style name="AppBaseTheme" parent="android:Theme.Holo.Light"> 
    <!-- API 11 theme customizations can go here. --> 
</style> 

RES /値-14

<!-- 
    Base application theme for API 14+. This theme completely replaces 
    AppBaseTheme from BOTH res/values/styles.xml and 
    res/values-v11/styles.xml on API 14+ devices. 
--> 
<style name="AppBaseTheme" parent="android:Theme.Holo.Light.DarkActionBar"> 
    <!-- API 14 theme customizations can go here. --> 
</style> 

関連する問題