安卓序列化知识点:

javabean如何传值,javabean没有办法直接传值,但是可以通过把javabean变成某一个key,key对应的是Parcelable,Parcelable就可以携带javabean

一、Activity与Fragment通信

原生方案:Bundle(相当于一个通信工具,可以保存数据的一个android里面独立的类,这个独立的类就可以进行一个通信的数据的载体)

二、实现步骤

1.在Activity中进行传值

image.png

2.在Fragment中接收Activity传过来的值

image.png

三、整体代码

1.MainActivity文件代码

  1. package com.example.fragmentmanagers;
  2. import androidx.appcompat.app.AppCompatActivity;
  3. import androidx.fragment.app.Fragment;
  4. import androidx.fragment.app.FragmentManager;
  5. import androidx.fragment.app.FragmentTransaction;
  6. import android.os.Bundle;
  7. import android.view.View;
  8. import android.widget.Button;
  9. import com.example.fragmentmanagers.fragment.BlankFragment1;
  10. import com.example.fragmentmanagers.fragment.BlankFragment2;
  11. public class MainActivity extends AppCompatActivity implements View.OnClickListener {
  12. @Override
  13. protected void onCreate(Bundle savedInstanceState) {
  14. super.onCreate(savedInstanceState);
  15. setContentView(R.layout.activity_main);
  16. Button btn_one = findViewById(R.id.btn_one);
  17. btn_one.setOnClickListener(this);
  18. Button btn_two = findViewById(R.id.btn_two);
  19. btn_two.setOnClickListener(this);
  20. }
  21. @Override
  22. public void onClick(View v) {
  23. switch (v.getId()) {
  24. case R.id.btn_one:
  25. Bundle bundle = new Bundle();
  26. bundle.putString("message","我很喜欢享学课堂");
  27. BlankFragment1 blankFragment1 = new BlankFragment1();
  28. blankFragment1.setArguments(bundle);
  29. replaceFragment(blankFragment1);
  30. break;
  31. case R.id.btn_two:
  32. replaceFragment(new BlankFragment2());
  33. }
  34. }
  35. //动态切换fragment
  36. private void replaceFragment(Fragment fragment) {
  37. FragmentManager fragmentManager = getSupportFragmentManager();
  38. FragmentTransaction transaction = fragmentManager.beginTransaction();
  39. transaction.replace(R.id.fl_item,fragment);
  40. transaction.addToBackStack(null);
  41. transaction.commit();
  42. }
  43. }

2.BlankFragment1文件代码

  1. package com.example.fragmentmanagers.fragment;
  2. import android.os.Bundle;
  3. import androidx.fragment.app.Fragment;
  4. import androidx.fragment.app.FragmentActivity;
  5. import android.util.Log;
  6. import android.view.LayoutInflater;
  7. import android.view.View;
  8. import android.view.ViewGroup;
  9. import com.example.fragmentmanagers.R;
  10. public class BlankFragment1 extends Fragment {
  11. private static final String TAG = "BlankFragment1";
  12. @Override
  13. public void onCreate(Bundle savedInstanceState) {
  14. super.onCreate(savedInstanceState);
  15. Bundle bundle = getArguments();
  16. String message = bundle.getString("message");
  17. Log.e("he",""+message);
  18. }
  19. @Override
  20. public View onCreateView(LayoutInflater inflater, ViewGroup container,
  21. Bundle savedInstanceState) {
  22. // Inflate the layout for this fragment
  23. return inflater.inflate(R.layout.fragment_blank_fragment1, container, false);
  24. }
  25. }

3.效果图:

image.png