请问
在 fragment界面中 有 一个 button a, 和texteview :textviewtool
1 当通过 点击 button a的 时候, 运行:startActivityForResult(Intent2,NICKNAME_REQUEST_CODE);,启动一个 activity:NameActivity,显示一个界面。
2 在这个弹出的界面里边,经过一系列操作,
把 public static String Nname;
的 NName = abc; 即最后把NName 赋值为 abc;
3 当 退出 弹出的界面,返回到 fragment的时候,通过回调
public void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) {
case NICKNAME_REQUEST_CODE:
nameactivity = new NameActivity();
if(nameactivity.Nname != null){
textviewnickname.setText(nameactivity.Nname);
}
break;
}
super.onActivityResult(requestCode, resultCode, data);
}
}
但是当 运行 textviewnickname.setText(nameactivity.Nname); 此句代码后,也就是给textdview :textviewnickname赋值后,fragment界面上的 显示的textviewnickname的值 还是没有变化, 要再次 点击 button,再次启动该页面,然后再次返回到fragment的界面,的时候,, fragment 界面上的显示的 textviewnickname的值就发生变化了,也就是此时显示nameactivity.Nname的值。
请问 这是什么原因导致这个问题的呢?怎么处理呢? 这个 好像只 当第一次打开界面,并返回到fragment的时候,给textviewnickname赋值,但是此时界面没有更新,是不是要调用什么函数更新通知fragment更新数据呢?
麻烦会朋友帮忙回复下,谢啦
------解决思路----------------------
有些地方觉得奇怪:
1. public static String Nname,static去了,用了它,nameactivity.Nname != null这个判断会不可靠。
2.textviewnickname.setText(nameactivity.Nname);把它放handler中试试。
------解决思路----------------------
回调中 nameactivity = new NameActivity(); 这个是什么来的? Activity?
建议你在相关的地方打下Log看看吧 这样方便你找出问题所在
在执行的逻辑过程中 打出相应的Log 看第一次执行是不是缺少什么了
------解决思路----------------------
Message msg = new Message();
msg.what = 0x011(自己定义);
msg.obj = 数据
handler.sendMessage(msg);