1

StackOverflowですべての可能性を検索してテストしましたが、まだ行き詰まっています。これが重複しているように見える場合は、お詫び申し上げます。

私が達成しようとしていることの概要は次のとおりです。

ユーザープロファイルがあります。これは UserProfileActivity と UserProfileFragment で構成され、ビューとデータ プロジェクションはフラグメントで処理されます。それぞれのユーザーのプロファイルを表示するために、ユーザー ID (objectId) も渡されます。

このユーザー プロファイルで、ユーザーのフォロワーのリスト (ListFollowerActivity と ListFollowerFragment で構成される) をクリックできます。このフォロワーのリストで個々の人をクリックすると、今度は別のユーザー ID で UserProfileActivity が再び表示されます。

現在起こっていること:

ListFollowerFragment から UserProfileActivity (新しいユーザー ID を使用) をロードするために現在使用しているコードは次のとおりです。

Intent intent = new Intent(parent, UserProfileActivity.class);
Bundle bundle = new Bundle();
bundle.putString(C.bundleKey.objectId, objectId);  // objectId = user ID!
intent.putExtras(bundle);
startActivity(intent);

ListFollowerFragment のリロード インテントからオブジェクト ID に対して out.println を実行したところ、正しいユーザー ID が正しく出力されました。(タップされたユーザーのID)

しかし実際には、アプリは同じユーザー プロファイル (新しいユーザー ID ではなく、以前のユーザー ID) を再度リロードします。

UserProfileFragment を取得してデータ (およびビュー) を更新し、正しいユーザーを反映するにはどうすればよいですか?

いくつかの観察: UserProfileActivity は、2 回目以降の読み込みから以前の状態 (以前のユーザー ID) から単純に「復元」しているようです。(UserProfileActivity の onCreate() と UserProfileFragment の onCreateView() から実行する out.println() は、2 回目以降の読み込みからは読み取れませんが、最初の読み込みでは正しく読み取ります!)

また、ListFollowerActivity に移動するときに UserProfileActivity で finish() を試みましたが、その後の UserProfileActivity のすべてのロードは、おそらくアクティビティが強制終了されて再起動されたため、正しいユーザー ID で機能しました。ただし、これはユーザーが戻ることができないことも意味します。本当に助けていただければ幸いです。ありがとう!(:

4

2 に答える 2

0

objectIDからwithを取得できると思いgetExtra()ますUserProfileFragment。このようなもの。

if (getIntent().hasExtra("objectId"))
            object_id = getIntent().getExtras().getString("objectId");
于 2013-08-19T08:47:46.573 に答える