Androidオプションメニューは、その下のPeferenceメニューをクリックしても残っているはずです
-
28-10-2019 - |
質問
Androidでオプションメニューを作成しました。アクティビティが開始されたときにメニューがポップアップするためのコードを書きました。しかし、問題は、その下の設定メニューをクリックするとオプションメニューが消えることです。アクティビティページまたはページの設定オプションをクリックしても、メニューページにオプションメニューを持続させてほしい。助けてください。
これが私のXMLコードです:
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/icon"
android:icon="@drawable/icon" />
<item android:id="@+id/text"
android:title="Text" />
<item android:id="@+id/icontext"
android:title="Icon and text"
android:icon="@drawable/icon" />
</menu>
Javaコード:
public void onAttachedToWindow()
{
super.onAttachedToWindow();
openOptionsMenu();
}
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu, menu);
return true;
}
解決
画面の下部に永続的なボタンが必要な場合は、いくつかのオプションがあります。あなたはaを置くことができます LinearLayout
下部で、または使用します RelativeLayout
と alignParentBottom=true
。ともかく、 OptionsMenu
Optionsキープレスにのみ表示され、OptionsItemプレスまたはキーバックプレスで閉じます。その他の実装は、Androidのユーザーエクスペリエンスに対してです。
ScrollViewにさまざまなオプションを使用して作成したPrefsページと、下部の保存ボタンは次のとおりです。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/titleTextView"
android:layout_width="fill_parent"
android:layout_height="50dp"
android:layout_alignParentTop="true"
android:background="@drawable/background_blue_gradient"
android:gravity="center"
android:text="Preferences"
android:textColor="@color/white"
android:textSize="16dp"
android:textStyle="bold" />
<ScrollView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_above="@+id/preferencesSaveButton"
android:layout_below="@id/titleTextView" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/titleTextView"
android:paddingBottom="0dp"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:paddingTop="10dp"
android:weightSum="2" >
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_weight="1.2"
android:text="Activate Notifications" />
<View
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.2" />
<ToggleButton
android:id="@+id/allowAlertsToggleButton"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_weight="0.6"
android:textOff="No"
android:textOn="Yes" />
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:paddingBottom="0dp"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:paddingTop="10dp"
android:weightSum="2" >
<TextView
android:id="@+id/alertDelayTextView"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_weight="0.8"
android:text="Notifications Delay" />
<View
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.2" />
<Spinner
android:id="@+id/alertDelaySpinner"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_weight="1"
android:entries="@array/alert_intervals" />
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:paddingBottom="0dp"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:paddingTop="10dp" >
<CheckBox
android:id="@+id/allowAutostartCheckBox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical" />
<View
android:layout_width="20dp"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/allowAutostartTextView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="Auto start on boot" />
</LinearLayout>
</LinearLayout>
</ScrollView>
<Button
android:id="@id/preferencesSaveButton"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_gravity="center_horizontal"
android:layout_marginBottom="10dp"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:layout_marginTop="10dp"
android:padding="15dp"
android:text="Save"
android:textStyle="bold" />
</RelativeLayout>
他のヒント
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu, menu);
return true;
このコードをOnCreateメソッドで使用します。
定期的なビューを使用する必要があります。メニューオプティオンを使用する代わりに、水平リニアレイアウトを使用してボタンで入力します。
これがハニカムまたはICSにある場合は、次のフラグをmenu.xmlで使用できます。これには、アクションバーにメニューオプションとアクションが表示されます
<item android:id="@[+][package:]id/resource_name"
android:title="string"
android:titleCondensed="string"
android:icon="@[package:]drawable/drawable_resource_name"
android:onClick="method name"
android:showAsAction= "always"
..
/>
所属していません StackOverflow