为了账号安全,请及时绑定邮箱和手机立即绑定

为什么我传过去的值显示为null?

布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:tools="http://schemas.android.com/tools"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:orientation="vertical"
   tools:context="io.github.joahyau.studying.DynamicFragmentActivity">

   <Button
       android:id="@+id/load"
       android:layout_width="match_parent"
       android:layout_height="80dp"
       android:text="run" />

   <LinearLayout
       android:id="@+id/container"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:orientation="horizontal" />
</LinearLayout>


fragment xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:orientation="vertical">

   <TextView
       android:id="@+id/fragment_text"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content" />

</LinearLayout>


Activity的java代码:

public class DynamicFragmentActivity extends Activity {

   @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_dynamic_fragment);

       findViewById(R.id.load).setOnClickListener(new View.OnClickListener() {
           @Override
           public void onClick(View v) {

               MyFragment myFragment = new MyFragment();
               Bundle bundle = new Bundle();
               bundle.putString("text", "demo");
               myFragment.setArguments(bundle);

               FragmentManager fragmentManager = getFragmentManager();
               FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
               fragmentTransaction.add(R.id.container, myFragment);
               fragmentTransaction.commit();

           }
       });
   }
}


fragment的java代码:

public class MyFragment extends Fragment {

   @Override
   public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

       View view = inflater.inflate(R.layout.myfragment, container, false);
       TextView textView = (TextView) view.findViewById(R.id.fragment_text);

       String text = getArguments().getBundle("text")+"";
       textView.setText(text);

       return view;
   }
}

正在回答

3 回答

怎麽解决的老哥????我也是啊TT

0 回复 有任何疑惑可以回复我~
#1

jyau 提问者

我是fragment那里用错方法了,getString("text"),不是getBundle,你看看你的是不是这里出错?
2018-03-21 回复 有任何疑惑可以回复我~

问题解决啦,我哭。。。

0 回复 有任何疑惑可以回复我~

对照着老师的源码一行行看过,基本就变量名不一样而已了。。。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Android攻城狮的第二门课(第1季)
  • 参与学习       111162    人
  • 解答问题       1457    个

本课程由浅入深地带您学会Android的常用控件的开发和使用

进入课程

为什么我传过去的值显示为null?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信