如何在没有 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>
我正在开发一个应用程序,我在其中为设置设置了一个 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>