2017-09-15 120 views
0

我使用下面的路徑創建了項目 file> new> new project> settings activity。設置片段

打開應用程序時出現一個頁面,點擊文本時第二個頁面打開。

page 1 image page 2 image 如何在打開應用程序時打開第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); 
     } 
    } 
} 
+0

澄清:您是否希望應用程序在'SettingsActivity'上啓動? – Jon

+0

我的應用程序仍然在settingsActivity上啓動,但我想打開第2頁而沒有任何點擊。請檢查第1頁和第2頁圖像。我的應用程序應該在第2頁上啓動。 – michaelzX

+0

你想在應用程序打開時打開第1頁或第2頁 –

回答

0

打開它,當你開始在onCreate方法的應用。

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

是否有某些原因,爲什麼這種方法不適合你?

+0

沒有第二個活動。如果你願意的話,我可以上傳我的項目給github。 – michaelzX

+0

哇我之前試過,但它沒有工作,但我刪除了一些代碼,現在它運作良好。謝謝。 – michaelzX

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>