设置片段

时间:2017-09-15 19:34:21

标签: android android-fragments

我使用以下路径创建了项目 文件>新>新项目>设置活动。

打开应用程序时出现一个页面,当我点击文本时打开第二个页面。 第1页 page1 第2页 page2 如何在打开应用程序时打开第2页?

我的代码

import android.os.Bundle;
import android.preference.PreferenceFragment;
import java.util.List;

public class SettingsActivity extends AppCompatPreferenceActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }

    @Override
    public void onBuildHeaders(List<Header> target) {
        loadHeadersFromResource(R.xml.pref_headers, target);
    }

    protected boolean isValidFragment(String fragmentName) {
        return PreferenceFragment.class.getName().equals(fragmentName)
                || DataSyncPreferenceFragment.class.getName().equals(fragmentName);
    }

    public static class DataSyncPreferenceFragment extends PreferenceFragment {
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            addPreferencesFromResource(R.xml.pref_data_sync);
            setHasOptionsMenu(true);
        }
    }
}

2 个答案:

答案 0 :(得分:0)

在onCreate方法中启动应用程序时打开它。

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
                           //Change layout_name to your xml/layout
    setContentView(R.layout.layout_name);

这有什么理由说明为什么这种方法不适合你?

答案 1 :(得分:0)

您可以创建创建SplashActivity并使用特定参数启动您的第一页,这将导致它启动第二页

SplashActivity:

public class SplashActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    Intent intent;
    intent = new Intent( this, SettingsActivity.class );
    intent.putExtra( PreferenceActivity.EXTRA_SHOW_FRAGMENT, SettingsActivity.DataSyncPreferenceFragment.class.getName() );
    intent.putExtra( PreferenceActivity.EXTRA_NO_HEADERS, true );
    startActivity(intent);
}

}

您还应该修改manifest.xml

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.example.maxim.testsettings">

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity
        android:name=".SettingsActivity"
        android:label="@string/app_name">

    </activity>
    <activity android:name=".SplashActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN"/>

            <category android:name="android.intent.category.LAUNCHER"/>
        </intent-filter>
    </activity>
</application>