【问题标题】:Can't Send Data from Activity to Fragment [duplicate]无法将数据从 Activity 发送到 Fragment [重复]
【发布时间】:2019-07-17 01:17:54
【问题描述】:

我几乎尝试了互联网上的所有解决方案来解决我的问题,但没有运气!

我有一个名为 TimeTableActivity 的活动:

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

    mSectionsPageAdapter = new SectionsPageAdapter(getSupportFragmentManager());

    mViewPager = (ViewPager) findViewById(R.id.container);
    setupViewPager(mViewPager);

    TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs);
    tabLayout.setupWithViewPager(mViewPager);

    Bundle extras = getIntent().getExtras();
    String stationTitle = extras.getString("stationTitle");
    int stationID = extras.getInt("stationID");
}

我想将此“stationID”发送到 Fragment。

【问题讨论】:

    标签: android android-fragments android-activity


    【解决方案1】:

    尝试下面的代码将 (stationID) int 从 activity 传递到 fragment

    你的活动类:

    private static FragmentManager fragmentManager;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_time_table);
    
        fragmentManager = getSupportFragmentManager();//Get Fragment Manager
    
    
        //Place below code where you want to send stationID.
    
        YourFragment frag = new YourFragment();//Get Fragment Instance
        Bundle data = new Bundle();//Use bundle to pass data
        data.putString("stationID", stationID);//put string, int, etc in bundle with a key value
        frag.setArguments(data);//Finally set argument bundle to fragment
        fragmentManager.beginTransaction().replace(R.id.fragmentContainer, frag).commit();//now replace the argument fragment               
    }
    

    你的片段类:

    public class YourFragment extends Fragment {
        public YourFragment() {
        }
    
        @Nullable
        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
            View view = inflater.inflate(R.layout.fragmentlayout, container, false);//Inflate Layout
    
            //Get Argument that passed from activity in "stationID" key value
            int getstationID = getArguments().getString("stationID");
            return view;//return view
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2021-02-07
      • 1970-01-01
      • 2013-09-27
      • 2018-04-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-10
      • 1970-01-01
      相关资源
      最近更新 更多