Android片段未更新

时间:2016-02-23 20:38:52

标签: android android-fragments

我有一个TextView片段。当我从活动更新文本属性时,组件不会在片段上更新。

TextView amountTag = (TextView) fm.findFragmentByTag("currentFrag").getView().findViewById(R.id.amountTag);
amountTag.setText("another text");

fm变量是我的FragmentManager

我已经尝试分离并再次附加片段。但它不起作用。

2 个答案:

答案 0 :(得分:0)

检查您的片段onCreateView中的视图是否会膨胀,如下所示:

TextView amountTag;

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View v = inflater.inflate(R.layout.fragment_sample, container, false);
    amountTag= (TextView) v.findViewById(R.id.amountTag);
    return v; 
}

如果您有任何问题,请在片段中创建setAmountText

public void setAmountText(String text) {
   amountTag.setText(text); 
}

在您的活动

中调用它
((CurrentFragment)fm.findFragmentByTag("currentFrag")).setAmountText("newValue");

希望这有帮助!

答案 1 :(得分:0)

我在这里找到了问题的答案:

Handling onNewIntent in Fragment

解决方案是将params发送到片段,例如:

Bundle bundle = new Bundle();
bundle.putString("amount", "newValue");
fragment.setArguments(bundle);

在片段中:

Bundle bundle = this.getArguments();
if (bundle != null)
        amountTag.setText(bundle.getString("amount", "defaultValue"));

感谢所有帮助过的人!