トリプルドットメニューの「設定」を使用した表示設定
-
21-12-2019 - |
質問
私のAndroidアプリケーションの基本設定をいくつか設定しています。まず第一に、アクションバーの右上にあるトリプルドットメニューを使用して設定を開く方法を理解できませんでした。だから私は一時的に選択された文字を呼び出すボタンを作成しました:
public void chooseSettings(View view) {
getFragmentManager().beginTransaction().replace(android.R.id.content, new PreferenceActivity()).commit();
}
.
これは私の優先率クラスのコードです:
public class PreferenceActivity extends PreferenceFragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Load the preferences from an XML resource
addPreferencesFromResource(R.xml.preferences);
}
}
.
どの種類の作品を扱います。それは私の画面の結果このように見えます:。
解決
オーバーフローメニューの設定
オーバーフローメニューの設定を使用するには、 ONOPTIONSITEMSELECTED メソッド、正しいIDを処理していない場合は
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.action_settings) {
// Code to show settings.
return true;
}
return super.onOptionsItemSelected(item);
}
.
R.id.action_settings
をメニュー項目のIDに置き換えます。
優先断片を表示する
あなたがあなたのイメージに示されているように、あなたの好みの画面は既存のレイアウトと重なっています。
追加したフラグメントのみを置き換えることができることに注意してください。動的に 。
あなたの画面のXMLを推測する国のXMLを推測し、フラグを推測し、推測フラグが膨張し、断片として動的に追加されていなかったので、単に重なり合うようになります。
溶液
あなたがこれを行うことができる1つの方法はあなたの好みの断片をロードする新しい活動を作成し始めることです。
たとえば、PreferencesをロードするSettingsActivity
というクラスを作成する場合(AndroidManifestに追加するのを忘れないでください)。
public class SettingsActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getFragmentManager().beginTransaction().replace(android.R.id.content, new PreferenceActivity()).commit();
}
}
.
onOptionsItemSelected
では、設定アクティビティを開始できます。
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.action_settings) {
Intent intent = new Intent(this, SettingsActivity.class);
startActivity(intent);
return true;
}
return super.onOptionsItemSelected(item);
}
.
それ以外の場合は、フレームレイアウトのようなものを使用するようにメインレイアウトを変更する必要があります。フラグメントを正しく追加/削除/置換することができます。