我有一个TextView片段。当我从活动更新文本属性时,组件不会在片段上更新。
TextView amountTag = (TextView) fm.findFragmentByTag("currentFrag").getView().findViewById(R.id.amountTag);
amountTag.setText("another text");
fm
变量是我的FragmentManager
。
我已经尝试分离并再次附加片段。但它不起作用。
答案 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"));
感谢所有帮助过的人!