如何解决将数据从 Activity 传递到 Tab Layout Fragment
嘿,我想将数据从活动传递到带有 View Pager 2 的 Tab Layout 下的片段。当我尝试将此数据从活动传递到直接片段时,我认为它失败了,因为它是一个 Tab 布局片段。
活动
这是我想传递数据的活动 String "gameid " 这是我要传递的数据
public class BettingPage extends AppCompatActivity {
public CardView matchCard;
TextView gameio;
ImageView gamebanner;
TabLayout tabLayout;
ViewPager2 pager2;
bettingpage_tabviewer adapter;
// private RecyclerView recyclerView;
// private FirebaseDatabase firebaseDatabase;
// private DatabaseReference databaseReference;
private MatchAdapter matchAdapter;
private ArrayList<MatchModel> gList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_betting_page);
gameio = findViewById(R.id.demo2);
String gameid = getIntent().getStringExtra(GAME_ID);
String banner = getIntent().getStringExtra(BANNER);
gamebanner = findViewById(R.id.gamebanner);
tabLayout = findViewById(R.id.bettingtabs);
pager2 = findViewById(R.id.bettingpagetab);
Glide.with(this).load(banner).into(gamebanner);
FragmentManager fm = getSupportFragmentManager();
final FragmentTransaction fragmentTransaction = fm.beginTransaction();
final matchtab myFragment = new matchtab();
// Bundle bundle = new Bundle();
// bundle.putString("gameid",gameid);
// myFragment.setArguments(bundle);
// fragmentTransaction.add(R.id.matchfragment,myFragment);
// fragmentTransaction.commit();
adapter = new bettingpage_tabviewer(fm,getLifecycle());
pager2.setAdapter(adapter);
tabLayout.addTab(tabLayout.newTab().setText("Match Tab"));
tabLayout.addTab(tabLayout.newTab().setText("Result Tab"));
tabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
pager2.setCurrentItem(tab.getPosition());
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
});
pager2.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() {
@Override
public void onPageSelected(int position) {
tabLayout.selectTab(tabLayout.getTabAt(position));
}
});
showFrag();
}
private void showFrag() {
String gameid = getIntent().getStringExtra(GAME_ID);
matchtab matchtab = new matchtab();
matchtab.SetData(gameid);
getSupportFragmentManager()
.beginTransaction()
.add(R.id.matchfragment,matchtab)
.commit();
}
}
片段
这是我想从活动中获取数据的片段
String demo;
RecyclerView matachrecyclerview;
private MyAdapter adapter;
private ArrayList<Model> gList;
public matchtab() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater,ViewGroup container,Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_matchtab,container,false);
TextView demo1;
demo1 = v.findViewById(R.id.fragt);
demo1.setText(demo);
// Recycler View
matachrecyclerview = v.findViewById(R.id.matchrecyclerview);
gList = new ArrayList<>();
FirebaseDatabase db = FirebaseDatabase.getInstance();
// DatabaseReference root = db.getReference("Match").child(gameid);
DatabaseReference root = db.getReference("Match").child("game1");
root.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot snapshot) {
for (DataSnapshot dataSnapshot : snapshot.getChildren()){
Model model = dataSnapshot.getValue(Model.class);
gList.add( new Model(model.title,model.amt));
Log.i("THE_CURRENT_USER:::",model.toString());
}
LinearLayoutManager im = new LinearLayoutManager((getContext()));
matachrecyclerview.setLayoutManager(im);
adapter = new MyAdapter(getContext(),gList);
matachrecyclerview.setAdapter(adapter);
}
@Override
public void onCancelled(@NonNull DatabaseError error) {
}
});
return v;
}
}
标签布局查看器
我想将数据传递给 matchtab() 片段
package com.example.bet;
public class bettingpage_tabviewer extends FragmentStateAdapter {
public bettingpage_tabviewer(@NonNull FragmentManager fragmentManager,@NonNull Lifecycle lifecycle) {
super(fragmentManager,lifecycle);
}
@NonNull
@Override
public Fragment createFragment(int position) {
switch (position)
{
case 0 :
return new resulttab();
}
return new matchtab();
}
@Override
public int getItemCount() {
return 2;
}}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。