私はアンドロイドの世界では初めてです。これまで、すべての「OptionsMenu」は次のように作成できました。
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_list_view_controller, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle item selection
switch (item.getItemId()) {
case R.id.menu_settings:
startActivity(new Intent (ListViewControllerActivity.this, PreverencesActivity.class));
return true;
case R.id.menu_devsettings:
startActivity(new Intent (ListViewControllerActivity.this, DevPreferencesActivity.class));
return true;
default:
return super.onOptionsItemSelected(item);
}
}
しかし、たとえば、新しい htc にはハードウェアの OptionsMenu ボタンがありません。OptionsMenu が私のソースのように実装されている場合、ディスプレイ内のメニューボタンは表示されません。レイアウトにボタンを追加する必要がないという OptionsMenu の権利をどのように実装できますか? または、ディスプレイ内のこのボタンを何らかの方法でアクティブにすることはできますか?
編集: Android は API 16 Jelly Bean でそれを処理しないため、問題を解決するために少し少ない情報を提供したと思います。もう一度。上記のようなオプションメニューを実装しました。しかし、ハードウェア オプション メニュー ボタンのない「htc one」では、画面内オプション メニュー ボタンが表示されません。
これが私が使用している私のレイアウトxmlです(レイアウトの問題である可能性があります):
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<ImageView
android:id="@+id/img_logo"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true" />
<TextView
android:id="@+id/txt_title"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:background="#1e4870"
android:textColor="#ffffff"
android:layout_below="@+id/img_logo"/>
<ListView
android:id="@android:id/list"
android:layout_below="@+id/txt_title"
android:layout_above="@+id/img_bottom_bar"
android:layout_width="match_parent"
android:layout_height="match_parent" >
</ListView>
<ImageView
android:id="@+id/img_bottom_bar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/footer"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:background="@android:drawable/bottom_bar"
android:src="@android:drawable/bottom_bar" />
<RelativeLayout
android:id="@+id/footer"
android:layout_width="wrap_content"
android:layout_height="50dp"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:orientation="vertical" >
<TextView
android:id="@+id/footer_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_toLeftOf="@+id/footer_img_bs"
android:textAppearance="?android:attr/textAppearanceSmall" />
<ImageView
android:id="@+id/footer_img_bs"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:src="@drawable/ic_launcher" />
</RelativeLayout>
</RelativeLayout>
そして、ここにマニフェストの一部があり、この問題を解決すると思いました:
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="16" />
私もこの問題を何度もグーグルで検索しました。しかし、この問題を抱えているのは私だけのようです。だから私は少し愚かである必要があります。
忘れる前に: WebnetMobile.com さん、助けてくれてありがとう。私が(前に言ったように)愚かすぎてあなたの答えを理解できないのかもしれません。