2016-09-29 15 views
0

Facebook androidアプリケーションに似たアンドロイドアプリケーションを開発中です。タイムラインの画面には投稿のリストがあり、ユーザーは投稿を好きでもコメントでもよい。ユーザーが投稿を気に入っているとき、好きなボタンを強調表示するために、配列からオブジェクトを取り出し、好きな状態を変更してアダプタに通知して、ボタンが強調表示されるようにします。
投稿をクリックすると、詳細画面が表示されます。詳細には、画面のユーザーはまた、ポストを好きにするオプションがあります。今、私の問題は、詳細画面の投稿が好きで戻ってきたら、リストの同じ位置にあるはずで、その位置のポストのボタンが強調表示されているはずです。 StartActivityForResult()メソッドを使用して詳細アクティビティを開始し、選択したオブジェクトを渡して、その処理を試みました。 onActivityResult()メソッドでは、変更されたオブジェクトをdetailアクティビティから戻しています。元のポストオブジェクトを配列の変更されたオブジェクトに置き換え、アダプターに通知します。 私は自分の論理が良いかどうかはわかりません。私はこれを行うためのより良い解決策が必要です。私は良い提案に非常に感謝します。リストビューを更新中

+0

なぜオブジェクトをより永久に変更しないのですか? –

+0

アダプターを掲示できますか? – Jai

+0

永久に?私はまた、投稿を再度読み込むためにAPIを呼び出すPostsリスト画面に戻ったときに別のオプションがあります。しかし、私は戻って来るときに投稿apiを再び呼びたいとは思わない。それで私はローカルに変更を加えたい –

答えて

0

はい。 onActivityResult()は、アクティビティのアクティビティの通信に適しています。

0

あなたのロジックは間違っていません。

しかし、単純なものにしたい場合は、EventBusのような3番目の部分ライブラリを試してみると、アクティビティのようなコンポーネント間で簡単にメッセージを伝えるのに役立ちます。

あなたの場合、StickyEventが役に立ちます。

1

onActivityResult()はちょうど正しい答えですが、アクティビティを終了するのではなく、代わりに/ homeボタンを押すことです。したがって、この場合、情報は親アクティビティーに渡されません。

私の頭に浮かぶ解決策は、sharedPreferencesまたはORMであなたのオブジェクトをより恒久的に修正することです。しかし、あなたのアプリの動きごとにメモリからデータを収集することは、不愉快なことかもしれません。

あなたのdetailActivityをdetailFragmentに変換することをお勧めします。親アクティビティーに情報を渡す方が簡単です。この場合、フルリストを持つアクティビティは、クリックされた単一の要素を渡すフラグメントを開始します。その後、親アクティビティとcomunicateするためのインタフェースを実装します。この場合、メインリストは常に正しく更新されます。

この方法は非常に長い説明を必要とします。私は研究の出発点を与えるために主要なステップを指摘します。

  1. Create a fragmentあなたの詳細と似ています。アクティビティと通信するには、適切なinterfaceの宣言が必要です。
  2. インターフェイスを実装して、その定義を上書きするアクティビティを作成します。この機能は、ボタンが押されたように扱われます。そこでここでは、メインのarrayListを更新する必要があります。
  3. Changeアイテムがクリックされたときの詳細フラグメントを持つ1つのメインフラグメント。

コードの最終的な解決策を見つけるのに役立ちたいと思います。

PD:内容がプロセス全体に影響するかもしれないthis URLが見つかりました。ちょうど非常に詳細です。

関連する問題