1

ユーザー名とトランザクションのその他の詳細を取得し、データベースに入力するアプリケーションを作成しました。アプリケーションは、データベースに同じ詳細を 2 つのトランザクションとして 2 回入力することにより、奇妙な動作を示すことがあります。新しい値は読み取られますが、静的変数には保存されません。

したがって、新しいトランザクションで以前の値が上書きされないように、各アクティビティの最後にすべての静的変数の値をフラッシュするのに助けが必要でした。

編集 :

  public class One
      {
  static String var;

      public void onCreate(Bundle savedInstanceState)
    {    
      super.onCreate(savedInstanceState);
              var="blah";
         }
   }

          public class Two
            {
              static String variable = One.var;
               // This is where i am accessing the value of the variables from previous activities.

              //CODE
            }
4

1 に答える 1

5

これらがあなたを助けますように..

静的変数を使用すると、アクティビティ全体でメモリが保存されるため、アクティビティの悪夢のようなものです..

あるアクティビティから別のアクティビティに値を渡すという問題を克服するために、他のメモリストアを試すことができると思います..

私の意見では、SharedPreference に値を保存するか、必要に応じて他のアクティビティにインテントを介して値を渡すことができます。

これらがあなたを助けることを願っています..

編集:

Intent in = new Intent(MainActivity.this,SecondActivity.class);

複数のメソッドを使用putExtra()して複数の値を入力し、2 番目のアクティビティで取得できます。

in.putStringArrayListExtra(String name, ArrayList<String> value);

StartActivity(in);

2 番目のアクティビティ:

Intent in = getIntent();

ArrayList<String> Roleids = new ArrayList<String>;

RoleId = in.getStringArrayListExtra(String name, ArrayList<String> value)

于 2013-06-10T05:08:28.537 に答える