2つのフラグメントが別々のライフサイクルで作成されています。フラグメント2のボタンをクリックすると、永続的なビューをフラグメント1に追加したいと思います。SharedPrefsからループを使用してビューを追加する
fragment1:
int i;
do {
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.WRAP_CONTENT);
params.setMargins(0, i*10, 0, 0);
Schedule_Class mClass = new Schedule_Class(getActivity(), "Math");
Container.addView(mClass, params);
} while (prefs.getString("mClass"+i++, null) != null);
fragment2:、それだけで、最新のキー値を持つつのビューを追加していますされて何が起こっている
int i;
FinishButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
prefs.edit().putString("mClass" + i++, "dummyValue").apply();
}
});
、prvious 1だけで置き換えられます。
質問:意図したとおりに
なぜこのループが動作していませんか?私はそれをどのように機能させるのですか?
を行うには良い方法です* *完了ボタンのonClickListenerに存在する? – sha
** i **は各キーに異なる数字を追加することによって各キーを区別するint –
** i **をインクリメントしていて、onClickメソッドで定義されていない場合、この変数がグローバルインスタンスでない場合、それは最終的な変数になります。これが問題の背景にある理由かもしれません。ちょうどいくつかの考え。 – sha