android 轻松实现页面跳转

    科技2025-12-31  9

    页面跳转代码封装

    package com.example.myapplication.core.util; import android.os.Bundle; import android.view.View; import androidx.navigation.NavController; import androidx.navigation.Navigation; /** * 实现页面跳转 * @Author lyr * @create 2020/10/8 18:39 */ public class PageUtil { public static NavController skipToFragment(View eventTargetView,int actionId) { NavController controller = Navigation.findNavController(eventTargetView); controller.navigate(actionId); return controller; } public static NavController skipToFragment(View eventTargetView, int actionId, Bundle data) { NavController controller = Navigation.findNavController(eventTargetView); controller.navigate(actionId,data); return controller; } } package com.example.myapplication.fragment; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.Button; import android.widget.Toast; import androidx.annotation.Nullable; import androidx.fragment.app.Fragment; import com.example.myapplication.R; import com.example.myapplication.core.util.PageUtil; /** *首页 fragment */ public class HomeFragment extends Fragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment return inflater.inflate(R.layout.fragment_home, container, false); } Button homeButton; @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); getView() .findViewById(R.id.btn_home) .setOnClickListener(v -> { Toast.makeText(getActivity(),"页面跳转",Toast.LENGTH_LONG).show(); Bundle data = new Bundle(); data.putString("data","hello world"); //页面跳转 PageUtil.skipToFragment(v,R.id.action_homeFragment2_to_detailFragment2,data); }); } }

    另一边 可以接收 跳转时传递过来的数据

    package com.example.myapplication.fragment; import android.os.Bundle; import android.util.Log; import androidx.annotation.Nullable; import androidx.fragment.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import com.example.myapplication.R; /** * A simple {@link Fragment} subclass. */ public class DetailFragment extends Fragment { public DetailFragment() { // Required empty public constructor } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment return inflater.inflate(R.layout.fragment_detail, container, false); } @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); String data = getArguments().getString("data"); Log.i("data",data); } }
    Processed: 0.011, SQL: 9