如何在没有 headers 的情况下创建单个 activity

How to create a single activity without headers

我正在开发一个应用程序,我在其中为设置设置了一个 activity。 我尝试使用 android 工作室模板来创建 activity 设置,但正在创建的代码结构过于复杂。 谁能告诉我如何创建类似于 android studio 模板但没有 headers 的 settingsActivity? 预先感谢您的回答。 你好。

在styles.xml文件中,如果你想在特定的activity.

中删除actionbar(你说的header),请制作一个样式标签
<style name="AppTheme1" parent="Theme.AppCompat.Light.NoActionBar" />

然后转到 AndroidManifest 文件,请将上面的样式应用到您的 activity 类似这样的东西。

<activity android:name=".SettingActivity" android:theme="@style/AppTheme1"></activity>

如果您想删除所有活动中的操作栏,则可以在 styles.xml 文件中更改 AppTheme 样式,如下所示。

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/mainColor</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
    ... ...

要创建单个 settingActivity,您可以尝试以下伪代码:

public class SettingsUI extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        getFragmentManager().beginTransaction().replace(android.R.id.content,
                new SettingsFragment()).commit();
        assert getSupportActionBar() != null;
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        PreferenceManager.setDefaultValues(this, R.xml.settings_preference, false);
    }

    public static class SettingsFragment extends PreferenceFragment {

        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            addPreferencesFromResource(R.xml.settings_preference);
         }
     }
  }

然后settings_preference.xml代码:

PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<EditTextPreference 
android:key="sample_key" 
android:title="@string/sample_title" 
android:inputType="number"  
android:summary="@string/sample_summary"/>

<EditTextPreference 
android:key="sample2_key" 
android:title="@string/sample2_title" 
android:inputType="number"
android:summary="@string/sample2_summary"/>

</PreferenceScreen>