在我的PreferenceActivity Activity中调用一个方法形成另一个Activity

时间:2013-04-05 14:34:49

标签: android android-activity preferenceactivity

嗨,谢谢你的帮助,

我有以下情况。

在我的应用中,我使用PreferenceActivity来显示和允许更改设置,让我们称之为 PreferenceActivity A

如果用户选择了一个特定的偏好,则会启动一个新的活动,让我们称之为活动B (A不会被销毁)。

我需要做的是在Activity B中调用PreferenceActivity A表单的方法。

请注意:PreferenceActivity A中的方法不能是静态的。

非常感谢任何帮助。

编辑编辑编辑编辑编辑

这就是Activty B的推出方式: 当用户点击PreferenceActivity A屏幕中的对应项目时,意图被触发。

 <PreferenceScreen
        android:key="addstocks"
        android:summary="Click here to add stocks"
        android:title="Add stocks" >
        <intent
            android:targetClass="com.stocktickerwidget.QuotesActivity"
            android:targetPackage="com.stocktickerwidget" />

1 个答案:

答案 0 :(得分:2)

不是像这样开始活动,而是在首选项上手动设置OnPreferenceClickListener并使用startActivityForResult()

private static final int RESUEST_CODE = 1;
protected void onCreate() {
    /* ... */
    Preference pref = getPreferenceManager().findPreference("addstocks");
    pref.setOnPreferenceClickListener(new OnPreferenceClickListener() {
        public boolean onPreferenceClick(Preference preference() {
            if (preference.getKey().equals("addstocks") {
                startActivityB();
                return true;
            }
            return false;
        }
    });
}

private void startActivityB() {
    Intent intent = new Intent(this, ActivityB.class);
    startActivityForResult(intent, REQUEST_CODE);
}

public void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == REQUEST_CODE && resultCode == RESULT_OK) {
        // do something here
    }
}