gpt4 book ai didi

android - 无法使用 bundle 将 tabhost 的位置从一个 fragment 获取到另一个 fragment

转载 作者:行者123 更新时间:2023-11-30 02:03:06 27 4
gpt4 key购买 nike

我有两个 fragment 。一个用于选项卡,一个用于调用 ListView 的主布局。我无法将“位置”从我的 AlarmTab 类传递到我的 AlarmActivity 类。该位置正在传递,但它只获取我的数组的长度。当我从位置 [0] 选项卡单击列表时,它返回 myTabHost 的长度而不是单击的选项卡。我想获得点击的位置,下面是我到目前为止所做的代码。我已经为此工作了几个小时。希望有人能帮我指出我所缺少的。先感谢您!

来自 AlarmTab 类

mTabHost = (FragmentTabHost) rootView.findViewById(android.R.id.tabhost);
widget = (TabWidget) rootView.findViewById(android.R.id.tabs);
hs = (HorizontalScrollView) rootView.findViewById(R.id.horizontalScrollView);
mTabHost.setup(getActivity(), getChildFragmentManager(), android.R.id.tabcontent);

for(int i=0; i<SmashDeviceData.get_instance().devices.size(); i++) {

AlarmActivity alarmActivity = new AlarmActivity();
Bundle bundle = new Bundle();
bundle.putInt("position", i);
alarmActivity.setArguments(bundle);
mTabHost.addTab(mTabHost.newTabSpec("i").setIndicator(SmashDeviceData.get_instance().devices.get(i).deviceName), AlarmActivity.class, bundle);
}

来自 AlarmActivity 类

   public void addAlarm(){
ImageView addAlarmButton = (ImageView) getActivity().findViewById(R.id.add_alarm);
addAlarmButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
FragmentActivity mainDrawer = (FragmentActivity) context;
Fragment fragment;
Bundle b = getArguments();
int position = b.getInt("position", 0);
Toast.makeText(context, String.valueOf(b.getInt("position")), Toast.LENGTH_SHORT ).show();
fragment = AlarmSetActivity.newInstance(context, position);
FragmentManager fragmentManager = mainDrawer.getSupportFragmentManager();
FragmentTransaction ft = fragmentManager.beginTransaction();
ft.replace(R.id.content_frame, fragment);
ft.addToBackStack(null);
ft.commit();
}
});
}

最佳答案

你的问题出在这一行

    mTabHost.addTab(mTabHost.newTabSpec("i").setIndicator(SmashDeviceData.get_instance().
devices.get(i).deviceName), AlarmActivity.class, bundle);

应该是这样的

    mTabHost.addTab(mTabHost.newTabSpec(SmashDeviceData.get_instance().
devices.get(i).deviceName).setIndicator(SmashDeviceData.get_instance().devices.get(i).
deviceName), AlarmActivity.class, bundle);

关于android - 无法使用 bundle 将 tabhost 的位置从一个 fragment 获取到另一个 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31174930/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com