我不能通过使用从Activity传递到fragment的bundle String数据在textView中设置文本。

问题描述 投票:0回答:1

数据从ProjectDetailActivity传递到ProjectDetailFragment,我已经检查了数据可以通过使用Toast来显示数据,如你在代码中看到的那样,但问题是我不能通过使用bundle的数据在Textview中设置文本。如果你看到这个代码中的一些错误,请告诉我。非常感谢。

ProjectDetailActivity类

         private String project_key,project_name,project_priority,project_category,
                        project_start_date ,project_end_date,project_description;
         @Override
         protected void onCreate(Bundle savedInstanceState) {
              super.onCreate(savedInstanceState);
              setContentView(R.layout.activity_project_detail);

              Intent intent = getIntent();
              project_key         = intent.getStringExtra("project_key");
              project_name        = intent.getStringExtra("project_name");
              project_category    = intent.getStringExtra("project_category");
              project_priority    = intent.getStringExtra("project_priority");

              Bundle bundle = new Bundle();
              bundle.putString("project_key",project_key);
              bundle.putString("project_name",project_name);
              bundle.putString("project_category",project_category);
              bundle.putString("project_priority",project_priority);

              ProjectDetailFragment project_detail_fragment =new ProjectDetailFragment();
              project_detail_fragment.setArguments(bundle);
              getSupportFragmentManager().beginTransaction()
                .replace(R.id.project_detail_fragment,project_detail_fragment)
                .commit();

          }
     }

ProjectDetailFragment类

 public class ProjectDetailFragment extends Fragment {
      private View root;

      private String project_key,project_name,project_priority,project_category,


      private TextView project_name_textView , project_priority_textView ,
                       project_category_textView ;

      private Context mContext;

      public ProjectDetailFragment() { }

      @Override
      public void onCreate(@Nullable Bundle savedInstanceState) {
           super.onCreate(savedInstanceState);
           if (getArguments() != null) {
                Bundle bundle = getArguments();
                project_key           = bundle.getString("project_key");
                project_name          = bundle.getString("project_name");
                project_priority      = bundle.getString("project_category");
                project_category      = bundle.getString("project_priority");
           }
      }

      public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle 
                  savedInstanceState) {
            root =  inflater.inflate(R.layout.fragment_project_detail, container,false);

            project_name_textView        = root.findViewById(R.id.project_name_textView);
            project_priority_textView    = root.findViewById(R.id.priority_textView);
            project_category_textView    = root.findViewById(R.id.category_textView);


            project_name_textView.setText(project_name);
            project_priority_textView.setText(project_priority);
            project_category_textView.setText(project_category);

            Toast.makeText(mContext,"TASK ACTIVITY\n"+
                    project_key+"\n"+project_name+"\n"+project_category+"\n"
                    +project_priority+"\n",Toast.LENGTH_SHORT).show();

            return root;
       }

       @Override
       public void onAttach(Context context) {
            super.onAttach(context);
            mContext=context;
       }
 }
java android textview bundle
1个回答
0
投票

如果Toast向你显示数据,这意味着在接收数据方面没有问题,而且我看不到在将数据设置为文本视图方面有任何错误,但是检查你的xml,检查文本颜色是否与背景颜色相匹配,例如文本视图的背景是白色的,文本颜色也是白色的,很明显,你不能看到文本.或者如果没有,你可以像这样尝试::::project_name_textView.setText(String.value of(project_name))。

© www.soinside.com 2019 - 2024. All rights reserved.