fragment跳转fragment使用onActivityResult返回数据,但无法设置到fragment的textView中

    xiaoxiao2021-03-25  135

    fragment数据有返回,但是将数据设置到textView中,设置后不显示,开始考虑是否是对象不同,导致设置的textView不属于当前显示的view,后经过调试,发现view都是从新find出来的,不存在这个问题,解决办法是将数据setText的方法推迟到了onResume()方法中,问题解决,但是没找到问题所在 : 在public void onViewCreated(View view, Bundle savedInstanceState) {}方法中调用  if (!TextUtils.isEmpty(projectName)) {    et_project_name.setText(projectName);    et_project_name.setTag(projectID);   } 无效,不改变该值, 在onResume方法中则设置成功  @Override  public void onResume() {   if (!TextUtils.isEmpty(projectName)) {    et_project_name.setText(projectName);    et_project_name.setTag(projectID);   }   projectName = "";   projectID = "";   super.onResume();  } 部分代码如下: /****************第一步****************/ 在BaseFragment中: 点击条目跳转到SearchProjectFragment et_project_name.setOnClickListener(new OnClickListener() {    @Override    public void onClick(View v) {     SearchProjectFragment fragment = SearchProjectFragment       .newFragment(null);     fragment.setTargetFragment(BaseAreaUseFragment.this,       getActivity().RESULT_OK);     openFragment(R.id.flt_fragment, fragment);//该方法是fragment切换的方法    }   });  protected void openFragment(int resId, Fragment fragment) {   String tag = fragment.getClass().getSimpleName();  activity     .getSupportFragmentManager()     .beginTransaction()     .setCustomAnimations(android.R.anim.slide_in_left,       android.R.anim.slide_out_right)     .replace(resId, fragment, tag).addToBackStack(tag).commit();  } /************************第二步************************/ 点击listView条目跳转,把结果返回到上一个fragment(BaseFragment) 在SearchProjectFragment中: lvProject.setOnItemClickListener(new OnItemClickListener() {    @Override    public void onItemClick(AdapterView<?> parent, View view,      int position, long id) {     Intent intent = new Intent();     intent.putExtra(SEARCH_PROJECT_NAME,       mDatas.get(position).get("名称"));     intent.putExtra(SEARCH_PROJECT_ID,       mDatas.get(position).get("信息"));     setResult(getActivity().RESULT_OK, intent);     getFragmentManager().popBackStack();    }   });  protected void setResult(int result_OK, Intent intent) {   Fragment targetFragment = getTargetFragment();   if (targetFragment == null) {    return;   }   getTargetFragment().onActivityResult(getTargetRequestCode(), result_OK,     intent);  } /*******************结束后跳转到该fragment**********************/ 在BaseFragment中:  @Override  public void onActivityResult(int requestCode, int resultCode, Intent data) {   super.onActivityResult(requestCode, resultCode, data);   if (getActivity().RESULT_OK == requestCode && data != null) {    projectName = data      .getStringExtra(SearchProjectFragment.SEARCH_PROJECT_NAME);    projectID = data      .getStringExtra(SearchProjectFragment.SEARCH_PROJECT_ID);// 项目ID   }  }
    转载请注明原文地址: https://ju.6miu.com/read-6000.html

    最新回复(0)