2011-05-31 7 views
0

こんにちはすべて私は最初のアクティビティで変数を持っています。2番目のアクティビティから返された値を追加し、アクティビティの切り替えは何度か繰り返されます....アイデア..?ここ は)あなたはおそらく、その戻り意図を介して第2の活動から値を返すと、startActivityForResultを(やりたい第2アクティビティのTextView値に応じて最初のアクティビティで変数をインクリメントする方法

double quantity = Double.parseDouble(s1[1]); 
double amount = Double.parseDouble(s1[2]); 

if(s1[3].equals("")) 
{ 
    totalint = (quantity*(amount)); 
    Log.d("hitherebbbbbbb",((Double)totalint).toString()); 
    grandTotal =+totalint; 
} 
else 
{ 
    deduction = Double.parseDouble(s1[3]); 
    totalint = ((quantity*(amount-deduction*amount/100))); 
    Log.d("hitherebbbbbbb",((Double)totalint).toString()); 
    grandTotal =+totalint; 
} 

答えて

2

変数の量が同じであれば、常にsharedpreferencesを使用できます。これらは使い方が簡単で、値が変更されたときに共有参照リスナを追加してアクティビティを更新することができます。変数の量が変更された場合(たとえば、一度に3つの整数がありますが、ユーザーが5を必要とするように変更することができます)、私は最適なオプションではないかもしれないもう少し複雑な作業を行いますが、それはデータベースよりも簡単です。あなたの状況を最もよく表しているシナリオを教えてください。

+0

Thnx GQGK ..私は同じものだと思ったが、リソースを使わずにコード内でやってみる... – ngesh

+2

@nagesh - コードで行うのは危険である。ユーザーがホームを押してからアプリケーションに戻った場合、システムがそのプロセスを中断してしまう可能性があります。その場合、共有変数に保持されているデータはすべて失われます。この問題を回避する最良の方法は、推奨されるアプローチ(startActivityForResult/onActivityResult)を使用するか、共有プリファレンスなどの永続データメソッドの1つに依存することです。 –

+0

テッドをお礼ありがとう...私はアンドロイドに新しいです。私はそれらに従ってみましょう – ngesh

1

...毎回ではなく、それの合計を現在の値を格納するコードの一部であります最初の活動では

あなたは、あなたの第二の活動における意思を作成する任意の関連するリターン・データを設定し、第二の活動が終了したときは、onActivityResult()メソッドにコールバックされます

setResult(Activity.RESULT_OK, returnIntent); 
finish(); 

を呼び出すことにより、これを行うだろう。その後、返品インテントから値を抽出し、ローカルストレージを更新します。

+0

私はevrythingを行ったことがあります。その値を取得していますが、それらを追加していない... – ngesh

+0

私は残しておきたいのは、これらの値を共有プリファレンスに保存して追加することです。プロセスが複雑になると仮定して実行しないでください。 – ngesh

+0

Applicationオブジェクトのいくつかのストレージに値を格納できます。これはあなたのアクティビティよりも長いライフサイクルを持ちます(アプリケーションからのアクティビティが生きている間はまわりに留まります)。より長い持続性が必要な場合は、filesystem/preferences/dbを見る必要があります。 – fleetway76

関連する問題