Error:(79, 38) 错误: 不兼容的类型: BaseFragment无法转换为Fragment 是什么原因?大神指教

package com.example.administrator.fragmenttest;

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.widget.RadioGroup;

import com.example.administrator.fragmenttest.base.BaseFragment;
import com.example.administrator.fragmenttest.fragment.OtherFragment;
import com.example.administrator.fragmenttest.fragment.Sgigement;
import com.example.administrator.fragmenttest.fragment.WenxueFragment;
import com.example.administrator.fragmenttest.fragment.XiaoshuoFragment;

import java.util.ArrayList;
import java.util.List;

public class MainActivity extends FragmentActivity {
List<BaseFragment> mBaseFragment;
RadioGroup rg_main;
private int position;

private Fragment mContext;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//初始化view
initView();
//初始化Fragment
initFragment();
//设置监听
setListener();
}

private void setListener() {
rg_main.setOnCheckedChangeListener(new MyOnCheckedChangeListener());
rg_main.check(R.id.rb_sanwen);
}

private void initFragment() {
mBaseFragment = new ArrayList<>();
mBaseFragment.add(new WenxueFragment());
mBaseFragment.add(new Sgigement());
mBaseFragment.add(new XiaoshuoFragment());
mBaseFragment.add(new OtherFragment());
}
private void initView() {
setContentView(R.layout.activity_main);
rg_main = (RadioGroup) findViewById(R.id.rg_main);
}

private class MyOnCheckedChangeListener implements RadioGroup.OnCheckedChangeListener {
@Override
public void onCheckedChanged(RadioGroup radioGroup, int checkId) {
switch (checkId) {
case R.id.rb_sanwen:
position = 0;
break;
case R.id.rb_shige:
position = 1;
break;
case R.id.rb_xiaoshuo:
position = 2;
break;
case R.id.rb_other:
position = 3;
break;

default:
position = 0;
break;
}
//根据位置得到对应的Framgent
BaseFragment to = getFragment();
//替换
switchFragment(mContext,to);
}

private void switchFragment(Fragment from, Fragment to) {
if (from != to) {
//才切换
mContext = to;
FragmentManager fm = getSupportFragmentManager();

//开启事务
FragmentTransaction transaction = fm.beginTransaction();
if (!to.isAdded()) {
if (from != null) {
transaction.hide(from);
}
if (to != null) {
transaction.add(R.id.f1_frame, to).commit();


}

} else if (from != null) {
transaction.hide(to);
}
if (to != null) {
transaction.show(to).commit();

}


}
}


private BaseFragment getFragment() {
BaseFragment fragment = mBaseFragment.get(position);
return fragment;

}
}


}

猜你喜欢

转载自www.cnblogs.com/jingyuguo/p/9378440.html