我有一个滑动标签程序,效果很好。
我想将数据从片段传递到包含的活动。我尝试遵循(http://developer.android.com/training/basics/fragments/communicating.html)
我在以下行中收到错误:
dataPasser = (onDataPass) activity;
具有以下跟踪:
java.lang.ClassCastException: com.example.bernard.tab.MyActivity cannot be cast to com.example.bernard.tab.fragment1$onDataPass
at com.example.bernard.tab.fragment1.onAttach(fragment1.java:34)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:903)
附带的代码:
public class fragment1 extends Fragment {
onDataPass dataPasser;
public fragment1() {
// Required empty public constructor
}
public interface onDataPass {
public void onPass(String s);
}
@Override
public void onAttach(Activity activity){
super.onAttach(activity);
dataPasser = (onDataPass) activity;
}
您能否提供帮助以了解此错误?
随后的问题:
我的包含活动如下:
public class MyActivity extends FragmentActivity implements
ActionBar.TabListener {
private ViewPager viewPager;
private ActionBar actionBar;
private tabpager tabPagerAdapter;
private String[] tabs = { "A", "B", "C", "D", "E", "F" };
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my);
viewPager = (ViewPager) findViewById(R.id.pager);
tabPagerAdapter = new tabpager(getSupportFragmentManager());
viewPager.setAdapter(tabPagerAdapter);
actionBar = getActionBar();
etc ...
所以我的问题是,因为它已经有一个“ ActionAction.TabListener实现”,我应该如何引用接口
onDataPass
?一些示例代码将不胜感激:)
在此先多谢!
最佳答案
一个类只能扩展一个超类,但它可以实现所需的任意数量的接口。 Java类可以具有多个接口。所以只要改变这个
public class MyActivity extends FragmentActivity implements
ActionBar.TabListener,DataPass