安卓序列化知识点:
javabean如何传值,javabean没有办法直接传值,但是可以通过把javabean变成某一个key,key对应的是Parcelable,Parcelable就可以携带javabean
一、Activity与Fragment通信
原生方案:Bundle(相当于一个通信工具,可以保存数据的一个android里面独立的类,这个独立的类就可以进行一个通信的数据的载体)
二、实现步骤
1.在Activity中进行传值
2.在Fragment中接收Activity传过来的值
三、整体代码
1.MainActivity文件代码
package com.example.fragmentmanagers;import androidx.appcompat.app.AppCompatActivity;import androidx.fragment.app.Fragment;import androidx.fragment.app.FragmentManager;import androidx.fragment.app.FragmentTransaction;import android.os.Bundle;import android.view.View;import android.widget.Button;import com.example.fragmentmanagers.fragment.BlankFragment1;import com.example.fragmentmanagers.fragment.BlankFragment2;public class MainActivity extends AppCompatActivity implements View.OnClickListener { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button btn_one = findViewById(R.id.btn_one); btn_one.setOnClickListener(this); Button btn_two = findViewById(R.id.btn_two); btn_two.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.btn_one: Bundle bundle = new Bundle(); bundle.putString("message","我很喜欢享学课堂"); BlankFragment1 blankFragment1 = new BlankFragment1(); blankFragment1.setArguments(bundle); replaceFragment(blankFragment1); break; case R.id.btn_two: replaceFragment(new BlankFragment2()); } } //动态切换fragment private void replaceFragment(Fragment fragment) { FragmentManager fragmentManager = getSupportFragmentManager(); FragmentTransaction transaction = fragmentManager.beginTransaction(); transaction.replace(R.id.fl_item,fragment); transaction.addToBackStack(null); transaction.commit(); }}
2.BlankFragment1文件代码
package com.example.fragmentmanagers.fragment;import android.os.Bundle;import androidx.fragment.app.Fragment;import androidx.fragment.app.FragmentActivity;import android.util.Log;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import com.example.fragmentmanagers.R;public class BlankFragment1 extends Fragment { private static final String TAG = "BlankFragment1"; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Bundle bundle = getArguments(); String message = bundle.getString("message"); Log.e("he",""+message); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment return inflater.inflate(R.layout.fragment_blank_fragment1, container, false); }}
3.效果图:
