如何从PreferenceActivity调用Activity?

时间:2012-12-02 12:08:55

标签: android android-activity preferences

我需要在按钮点击或其他方式从PreferenceActivity启动新的Activity。可能吗?如何制作?

3 个答案:

答案 0 :(得分:6)

您可以从Activity开始另一个PreferenceActivity,就像标准的做法一样。例如:

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

答案 1 :(得分: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或类似的。

答案 2 :(得分: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>

现在是我想分享的棘手部分: android:targetPackage节点中的xml属性<intent>是指您的应用程序包, NOT THE JAVA PACKAGE! 因此,只要您在应用程序中工作而不调用外部意图,就必须说明您的应用程序包,无论活动类位于应用程序项目中的 JAVA 包。

我希望这有帮助,我找不到任何关于这些内容的文档,只是用户在网上发帖。