如何从首选项活动调用活动



我需要在单击按钮或其他方式时从首选项活动启动新活动。可能吗?怎么做?

您可以从

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

这应该有效

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

这应该在创建或类似内容中。

您也可以在 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>

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

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

最新更新