我需要在按钮点击或其他方式从PreferenceActivity启动新的Activity。可能吗?如何制作?
答案 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 包。
我希望这有帮助,我找不到任何关于这些内容的文档,只是用户在网上发帖。