michaelzX
michaelzX

Reputation: 13

Setting Fragment

I created the project using the path below file>new>new project>settings activity.

a page comes up when the application is opened and the second page opens when I click to text. page 1 page1 page 2 page2 how can I open page 2 when the application is opened?

my code

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);
        }
    }
}

Upvotes: 0

Views: 2033

Answers (2)

Maksim Turaev
Maksim Turaev

Reputation: 4325

You can create create a SplashActivity and launch your first page with specific parameter that will cause it to launch the second page

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);
}

}

you should also modify your 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>

Upvotes: 0

king_abu1918
king_abu1918

Reputation: 284

Open it when you start the application in the onCreate method.

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

Is there some reason this why this approach won't work for you?

Upvotes: 1

Related Questions