3

こんにちは、ご協力ありがとうございます。

次のような状況があります。

私のアプリでは、 PreferenceActivity を使用して設定の変更を表示および許可します。これをPreferenceActivity Aと呼びましょう。

ユーザーが 1 つの特定の設定を選択すると、新しいアクティビティが開始されます。これをアクティビティ Bと呼びましょう(A は破棄されません)。

私がする必要があるのは、アクティビティ B 内の PreferenceActivity A フォームのメソッドを呼び出すことです。

注意: PreferenceActivity A のメソッドを静的にすることはできません。

どんな助けでも大歓迎です。

編集 編集 編集 編集 編集 編集

これがアクティビティ 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" />
4

1 に答える 1

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
    }
}
于 2013-04-05T15:35:34.860 に答える