【发布时间】:2014-05-05 08:00:05
【问题描述】:
我正在使用 v4 支持库的 FragmentTabHost 实现选项卡。
我的第一个选项卡包含项目列表。当我单击列表项时,它应该移动到选项卡 2。 我的第二个选项卡显示了列表项的描述。所以我需要将第一个选项卡的列表和单击的列表项的索引传递给第二个选项卡。
我目前在应用程序级别使用 getter 和 setter。但是有没有其他方法可以做到这一点?最好的方法是什么?
第一个片段-Tab-0
@Override
public void onAttach(Activity activity) {
// TODO Auto-generated method stub
super.onAttach(activity);
try {
mCallback = (OnRadioSelectedListener) activity;
} catch (ClassCastException e) {
throw new ClassCastException(activity.toString()
+ " must implement OnHeadlineSelectedListener");
}
}
@Override
public void onListItemClick(ListView l, View v, int position, long id) {
// TODO Auto-generated method stub
super.onListItemClick(l, v, position, id);
mCallback.onRadioSelected(dataList, position);
}
public interface OnRadioSelectedListener {
public void onRadioSelected(ArrayList<DataModel> playingList, int playingIndex);
}
Tabhost活动代码:
@Override
public void onRadioSelected(ArrayList<DataModel> playingList, int playingIndex) {
mPlayingIndex = playingIndex;
mPlayingList = playingList;
fragmentTabHost.setCurrentTab(1);
Fragment2 frag = (Fragment2) getSupportFragmentManager().findFragmentByTag(getString(R.string.str));
if (frag != null) {
Bundle args = new Bundle();
args.putSerializable("Key_list", mPlayingList);
args.putInt("Key_current_index", mPlayingIndex);
frag.setArguments(args);
}
}
第一次 frag 为空,第二次给出异常
【问题讨论】:
-
贴出部分代码,以便我们为您提供帮助。
标签: android android-fragments android-listview fragment fragment-tab-host