我有2个具有独立生命周期的片段,我想通过单击fragment2中的按钮将永久视图添加到fragment1中,我想出的最好方法是使用共享首选项。
片段1:
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();
}
});
正在发生的事情是,它只添加一个带有最新键值的视图,而前一个视图会被替换。
问题:
为什么这个循环不按预期工作?我如何使它工作?
答案 0 :(得分:0)
当您在Fragment2中单击finishButton时,如何在Fragment1中触发代码?
一般来说,您可以使用一些事件框架,例如EventBus。
答案 1 :(得分:0)
你可以使用LISTVIEW的逻辑,你可以膨胀一段时间,第二次,你可以把其他设计放在BaseAdapter之上, 来自oficla网站的一些逻辑。
http://developer.android.com/intl/es/guide/topics/ui/layout/listview.html
来自互联网(谷歌)的其他例子
答案 2 :(得分:0)
for loop
是一种很好的方法
for (i = 1; prefs.getString("mClass"+i, null) != null; i++ ){
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);
}