0

这是我创建视图时的一点,

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 中的值与之前的执行相同。

有谁知道我做错了什么?我该如何解决?


** 编辑

我修改了一点我的代码,现在每次我加载片段时都会递增。和 io 注意到奇怪的行为。tv 的实际值为 a,而 editText 仍具有旧值

4

3 回答 3

2

您需要将 settext(可能还有其他一些东西)移动到片段生命周期中的稍后方法中,例如 onActivityCreated。

于 2013-07-19T01:41:18.143 回答
1

在添加片段之前,尝试通过调用 FindFragmentByTag("tag") 来获取片段,我认为您正在添加新的片段。还将您的片段事务添加到返回状态,然后检查是否添加了多个片段,请按返回按钮。我有类似的问题,原因是我不断在活动中添加新的片段

于 2013-07-19T01:48:36.323 回答
0

片段与活动相关,所以我的猜测是活动没有被破坏,这意味着你的片段没有被破坏,而是“恢复”。也许你想要onResume回调中的代码?看一下 Fragment 生命周期:Android Fragments

于 2013-07-18T21:09:29.437 回答