无法修改CalendarFragment中TextView内容的技术求助
解决CalendarFragment中TextView文本不更新的问题
核心问题分析
问题出在CalendarFragment的onCreateView方法里:你先填充了一个布局实例并修改了TextView的文本,但最后返回的是重新填充的全新布局实例,之前对TextView的修改根本没被显示出来。
修复后的代码
修改CalendarFragment.java的onCreateView方法,返回你已经修改过的view对象即可:
import android.os.Bundle; import androidx.fragment.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; public class CalendarFragment extends Fragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_calendar, container, false); TextView welcomeMessage = view.findViewById(R.id.welcomeBackTitle); // 增加非空判断避免空指针异常 if (GlobalVariable.first_name != null) { welcomeMessage.setText("Welcome back " + GlobalVariable.first_name + "!"); } // 返回已经修改过的view,而非重新inflate的新布局 return view; } }
额外优化建议
- 全局变量替代方案
使用静态类存储用户名不是Android的最佳实践,建议改用SharedPreferences做持久化存储,APP重启后数据不会丢失:
// 存储用户名(在输入用户名的Activity中) SharedPreferences prefs = getSharedPreferences("AppPrefs", MODE_PRIVATE); prefs.edit().putString("username", inputUsername).apply(); // 获取用户名(在CalendarFragment中) SharedPreferences prefs = requireContext().getSharedPreferences("AppPrefs", MODE_PRIVATE); String username = prefs.getString("username", "Guest");
- 规范的Fragment数据传递
如果需要从Activity向Fragment传递数据,更推荐通过Bundle传递,提升Fragment的独立性:
// 在Activity中创建Fragment时传递参数 CalendarFragment fragment = new CalendarFragment(); Bundle args = new Bundle(); args.putString("username", username); fragment.setArguments(args); // 在Fragment中获取参数 @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_calendar, container, false); TextView welcomeMessage = view.findViewById(R.id.welcomeBackTitle); String username = getArguments().getString("username", "Guest"); welcomeMessage.setText("Welcome back " + username + "!"); return view; }
内容的提问来源于stack exchange,提问作者Stotox
相关产品推荐
相关产品推荐

