0

一部から、次のようFragmentに呼び出します。Activity

private void setEmailChangeListener() {
    emailChangeButton.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            Intent intent = new Intent(getActivity(), EmailChangeActivity.class);
            startActivityForResult(intent, 1);
        }

    });
}

そのActivity中で、データベースの電子メールにいくつかの変更を加えてから、ローカル データベースの情報を更新します (更新された電子メールと更新日時)。次に、次のように呼び出しますsetResult

     if (!error) {
       JSONObject user = jObj.getJSONObject("user");
                                    String updatedAt = user.getString("updated_at");

       String userUniqueId = db.getUserUniqueId();
       db.updateUpdatedAt(updatedAt, userUniqueId);

       Intent returnIntent = new Intent();
       setResult(Activity.RESULT_OK, returnIntent);
       finish();
} else {
       String errorMsg = jObj.getString("error_msg");
       showSnackbarInfo(errorMsg, R.color.snackbar_error);
}

Activity開いた状態で、更新するためにFragment情報を更新したいと思います。私はこのようにそれを行います:FragmentdetachattachonActivityResult

// Result From Other Activities
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (resultCode == Activity.RESULT_OK && requestCode == 1) {
        Log.i("result", "reqCode = 1, zmieniam adres email w nav draw i odswierzam fragment");
        navHeaderEmail.setText(db.getEmailAdress());
        Fragment fragment = getSupportFragmentManager().findFragmentByTag(
                TAG_FRAGMENT_ACCOUNT_SETTINGS);
        FragmentTransaction fragmentTransaction =
                getSupportFragmentManager().beginTransaction();
        fragmentTransaction.detach(fragment);
        fragmentTransaction.attach(fragment);
        fragmentTransaction.commit();

        showSnackbarInfo(getString(R.string.inf_email_change_success),
                R.color.snackbar_success);
    }
}

setResult結果を適切に設定しなかったなどのように、呼び出した後は何も起こりません。これで私を助けてもらえますか?

これがどのように機能するかのスキーマは次のとおりです。

ここに画像の説明を入力

編集:

これが私のものAndroidManifest.xmlです:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.nazwamarki.myapplication">

    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

    <application
        android:name=".app.AppController"
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/application_name"
        android:theme="@style/AppTheme">

        <!-- Home Activity -->
        <activity
            android:name=".HomeActivity"
            android:label="@string/application_name"
            android:theme="@style/AppTheme.Normal">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <!-- Login Activity -->
        <activity
            android:name=".LoginActivity"
            android:label="@string/login_activity_name"
            android:parentActivityName=".HomeActivity"
            android:theme="@style/AppTheme.Logreg">
            <meta-data
                android:name="android.support.PARENT_ACTIVITY"
                android:value="com.example.nazwamarki.myapplication.HomeActivity" />
        </activity>

        <!-- Sign Up Activity -->
        <activity
            android:name=".SignUpActivity"
            android:label="@string/register_activity_name"
            android:parentActivityName=".HomeActivity"
            android:theme="@style/AppTheme.Logreg">
            <meta-data
                android:name="android.support.PARENT_ACTIVITY"
                android:value="com.example.nazwamarki.myapplication.HomeActivity" />
        </activity>

        <!-- Email Change Activity -->
        <activity
            android:name=".EmailChangeActivity"
            android:label="@string/change_email_activity_name"
            android:theme="@style/AppTheme.Normal">
        </activity>

        <!-- Password Change Activity -->
        <activity
            android:name=".PasswordChangeActivity"
            android:label="@string/change_password_activity_name"
            android:theme="@style/AppTheme.Normal">
        </activity>

        <!-- Recipe Activity -->
        <activity
            android:name=".RecipeActivity"
            android:label="@string/recipe_activity_name"
            android:parentActivityName=".HomeActivity"
            android:theme="@style/AppTheme.Normal">
            <meta-data
                android:name="android.support.PARENT_ACTIVITY"
                android:value="com.example.nazwamarki.myapplication.HomeActivity" />
        </activity>
    </application>

</manifest>
4

1 に答える 1