2012-12-02 45 views

回答

6

您可以從PreferenceActivity開始另一個Activity,就像這樣做的標準方式。例如:

Intent testIntent = new Intent(getApplicationContext(), Activity2.class); 
startActivity(testIntent); 

首先,在你的XML定義一個偏好:

<Preference 
    android:key="test_pref" 
    android:summary="@string/someDescription" 
    android:title="Some Random Title" > 
</Preference> 

在你PreferenceActivity

Preference pref = findPreference("test_pref"); 
shareSociallyYou.setOnPreferenceClickListener(new OnPreferenceClickListener() { 

    @Override 
    public boolean onPreferenceClick(Preference preference) { 

     Intent testIntent = new Intent(getApplicationContext(), Activity2.class); 
     startActivity(testIntent); 

     return true; 
    } 
}); 
+0

shareSociallyYou pref right –

3

這應該工作

Preference preference = findPreference("Your Preference Key"); 
    preference.setOnPreferenceClickListener(new OnPreferenceClickListener() { 
     @Override 
     public boolean onPreferenceClick(Preference preference) { 
      Intent intent = new Intent(getApplicationContext(), YourActivity.class); 
      startActivity(intent); 
      return true; 
     } 
    }); 

這應該是在OnCreate或相似。

1

您可以設置的意圖,如XML優先行動爲好。只需添加到您的偏好XML:

<PreferenceScreen android:key="KEY" android:title="DOYOURWORK"> 
    <intent android:targetClass="com.yourcompany.app.youractivity" 
     android: targetPackage="com.yourcompany.app"> 
     <extra android:name="EXTRA_KEY" android:value="yourValue" /> 
    </intent> 
</PreferenceScreen> 

現在棘手的部分我想和大家分享: XML屬性android:targetPackage<intent>節點是指你的應用程序包,不是Java包! 所以只要你在你的應用程序中工作,而不是調用外部意圖,你只需要聲明你的應用程序包,而不管你的應用程序項目中的活動類是哪個包。

我希望這可以幫助,我找不到任何文檔關於這個東西,只是在網絡上的用戶張貼。

相關問題