0

私の問題は単純に思えましたが、そうではないようです。

ユーザーが入力したパラメーターに応じて複雑な結果を計算できるコア クラスを取得しました。これまでは結果を ListView として表示し、詳細ビューにはスライド パネルを使用していたので、すべてが 1 つのアクティビティ A 内できちんと整理されています。

しかし今、私はスライド デザインを取り除き、マスター/詳細フローを "単純に" 使用して、タブレットでは 2 つのフラグメントを並べて表示し、携帯電話では別々に表示できるようにしたいと考えました。

まあ、私はそのためにアプリ全体を再設計したくありませんでしたが、基本的には、別のアクティビティ B の詳細情報を取得するにはどうすればよいですか?

インテントを介して送信できるのは Parcelable (またはシリアライズ可能な) データのみであることはわかっていますが、本質的に int-array-type のデータの場合、これは非常に複雑です! Intent へのすべての変換と Intent からの再構築 - それはただの苦痛です!

もちろん、データベースや同様の複雑なものも必要ありません - SharedPrefs は必要ありません。

基本的に、私は2つのアプローチを考えましたが、それらはすべて...悪臭を放っています...種類:a)計算されたデータをアプリケーションクラス内に保存します-問題:アプリが破棄され、アクティビティBを再表示するためだけに再起動される可能性があります。 app オブジェクトには何も残りません! b) 計算を行い、そこで結果をキャッシュするコンテンツ プロバイダーを実装します。うーん。単純な結果を転送するには、カーソルが再び複雑になります。そして: ContentProvider に結果をキャッシュする期間はどれくらいですか?

私はこれがすべて混乱していると感じています。:-( 何か案は?

4

3 に答える 3

0

アプリが破壊され、すべてが削除されるという動作を作成できましたか? 私は同じ線に沿っていくつかのことを行うアプリを開発してきましたが、パブリック静的変数を使用して、それらが作成されたアクティビティに物を格納しています。そうすれば、他のアクティビティからアクセスできます。必ずしも最もエレガントな方法ではありませんが、私にとってはうまく機能しています。

于 2013-07-01T15:09:46.350 に答える
0

ああ、それは混乱ではありません:)

はいの場合は、次のアクティビティのためにデータを保存できるシングルトン パターンを使用できます。

public class mySingleton 
{
   mySingleton instance;
   yourvariable1;
   yourvariable2;
   yourvariable3;
   yourobject1;
   yourobject2;

  public static mySingleton getSingletonInstance()
    {
      if(instance==null)
        {
          instance=new mySingleton();
        }
      return instance;
    }
}

これにより、アクティビティが実行されるまで、またはアプリケーションがシステムメモリに入るまでデータを保存できます

ただし、アプリケーションを閉じてデータを保持したい場合は、そこでバックグラウンド サービスを作成します。アプリケーションのアクティビティによって破棄されるデータを保存できますが、サービスには変数とデータが含まれます

それがあなたの問題を解決することを願っています

于 2013-07-01T15:45:46.207 に答える