0

我需要在按钮单击或其他方式时从 PreferenceActivity 启动新 Activity。是否可以?怎么做?

4

3 回答 3

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;
    }
});
于 2012-12-02T12:25:27.007 回答
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 或类似中。

于 2012-12-02T12:14:03.133 回答
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>指的是您的应用程序包,而不是 JAVA 包! 因此,只要您在您的应用程序中工作而不调用外部意图,您只需声明您的应用程序包,无论活动类位于应用程序项目中的哪个JAVA包中。

我希望这会有所帮助,我找不到关于这些东西的任何文档,只是网络上的用户帖子。

于 2012-12-20T15:32:22.513 回答