当我创建视图时,这有点
public static int a=0;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
a++;
View view = inflater.inflate(R.layout.fragment_layout, container, false);
editText = (EditText) view.findViewById(R.id.amount);
TextView tv = (TextView) view.findViewById(R.id.textView1);
Button button = (Button) view.findViewById(R.id.addTransaction);
button.setOnClickListener(this); ///fragments implements OnClickListener
editText.setText(""+a);
tv.setText(""+a);
return view;
}
当我第一次加载这个片段时,我的editText是空的,但是当我再次加载片段时,editText中的值与之前的执行中的值相同。
有人知道我做错了什么吗?我怎么解决它?
**编辑
我修改了一点我的代码,现在每次当我加载片段a时都会增加。并且我注意到了奇怪的行为。 tv具有实际值a,而editText仍具有旧值
答案 0 :(得分:2)
您需要将settext(可能还有一些其他内容)移动到片段生命周期中的后续方法中,例如onActivityCreated。
答案 1 :(得分:1)
在添加片段之前尝试通过调用FindFragmentByTag(“tag”)来获取片段,我认为您正在添加新片段。还要将片段事务添加到后台状态,然后检查是否添加了多个片段,请按返回按钮。我有类似的问题,原因是我不断在活动中添加新的片段
答案 2 :(得分:0)
碎片与活动联系在一起,所以我的猜测是活动没有被破坏,这意味着你的碎片没有被破坏而是“恢复”。也许您想要onResume
回调中的代码?看一下Fragment生命周期:Android Fragments