android - 即使未调用 onCreateView 也刷新当前 Fragment

标签 android android-fragments

我创建了一个 fragment ,其内容每天都在变化,问题是如果我不离开 fragment 并重新打开它(以这种方式我调用 onCreateView 方法) fragment 不会更新其内容,所以我如何更新它的内容?我看到如果我在后台发送应用程序并重新打开它, View 不会更新,这是一个问题...

 @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.scarsdale_home_activity, container, false);

      d=new Database(getActivity());
      String dataString=d.checkDataString();

      int start = dataString.indexOf("/");
      String dayString = dataString.substring(0,start);
      String monthString = dataString.substring(start + 1,start+3);
      String yearString = dataString.substring(start+4);
      int day = Integer.parseInt(dayString);
      int month = Integer.parseInt(monthString);
      int year = Integer.parseInt(yearString); 
      Calendar current = Calendar.getInstance(); 
      current.get(Calendar.YEAR);
      current.get(Calendar.MONTH);
      current.get(Calendar.DAY_OF_MONTH);



      Calendar thatDay = Calendar.getInstance(); 
      thatDay.set(Calendar.YEAR,year);
      thatDay.set(Calendar.MONTH,month-1);
      thatDay.set(Calendar.DAY_OF_MONTH,day);

      long diff = current.getTimeInMillis() - thatDay.getTimeInMillis();   

      long days = diff / (24 * 60 * 60 * 1000);   
      String strDays = new Long(days).toString();
      int intDays =Integer.parseInt(strDays);
       TextView textsca1;


        if(intDays >=0 && intDays<=6){
          d= new Database(getActivity());
          String listadietatext= d.getRow(intDays);

            textsca1=(TextView) rootView.findViewById(R.id.textsca1);
            textsca1.setText(listadietatext);


        }


        return rootView;
    }

我尝试通过 onResume 进行更新,但应用程序崩溃了

 @Override
  public void onResume() {
     super.onResume();
    FragmentTransaction fragTransaction = getFragmentManager().beginTransaction();
   fragTransaction.replace(R.id.container_sca,ScarsdaleHome.newIstance());
   fragTransaction.commit();

  }

最佳答案

快速浏览 fragment 生命周期指南 here . fragment 与其调用 Activity 生命周期紧密相关。在您的情况下,如果您覆盖 fragment 中的 OnResume() 方法,而不是 onCreateView(),那么当您的应用进入后台并重新打开时, Activity onResume(和 fragment onResume)都将被调用。

关于android - 即使未调用 onCreateView 也刷新当前 Fragment,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29692557/

相关文章:

android - 获取软键盘的尺寸

android - 操作栏按钮未显示在 fragment 更改中

java - cardview点击详细内容时如何发送数据

android - 双工具栏显示在 fragment 上

android - 获取 fragment 中的屏幕宽度和高度

java - 如何从url下载gif图像并保存到android中的存储

android - Adobe Sitecatalyst 的 OutOfMemoryError

java - 如何检查上下文当前正在运行的 Activity

java - AsyncTask和Application的生命周期?

当我点击第三次点击时,Android TabActivity 会调用 onDestroyView