这个问题怎么改?
Main2Activity的
import androidx.annotation.NonNull; import android.os.Handler; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentActivity; import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentPagerAdapter; import androidx.viewpager.widget.ViewPager; import android.os.Bundle; public class Main2Activity extends FragmentActivity { private int[] imgres = new int[]{R.drawable.g1,R.drawable.g2,R.drawable.g3};//广告条的图片资源 private Handler mHandler = new Handler(); private ViewPager mViewPager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.fragment_blank); mViewPager = findViewById(R.id.bannerviwepage); mViewPager.setAdapter(new mypageradpter(getSupportFragmentManager())); autoScroll(); } //自动滚动 private void autoScroll() { mHandler.postDelayed(new Runnable() { @Override public void run() { //获取当前的页面下标 int currentItem = mViewPager.getCurrentItem(); mViewPager.setCurrentItem(currentItem+1); mHandler.postDelayed(this,2000); } }, 2000); } //广告条的适配器 class mypageradpter extends FragmentPagerAdapter { public mypageradpter(@NonNull FragmentManager fm) { super(fm); } @NonNull @Override //返回fragment视图 public Fragment getItem(int position) { position %= imgres.length; BannerFragment frangent = new BannerFragment(); frangent.setImage(imgres[position]); return frangent; } @Override // public int getCount() { return 100000; } } }
BannerFragment的
import android.os.Bundle; import androidx.fragment.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; /** * A simple {@link Fragment} subclass. */ public class BannerFragment extends Fragment { public int ingres; public BannerFragment() { // Required empty public constructor } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment View inflate=inflater.inflate(R.layout.fragment_banner3,container,false); ImageView iv_banner=inflate.findViewById(R.id.iv_banner); iv_banner.setImageResource(ingres); return inflate; } public void setImage(int ingres){ this.ingres=ingres; } }
首先你的代码没有问题,因为我已经成功的运行了你的代码。
从错误日志上分析,就是当前的Activity 无法转变成AndroidX 下的FragmentActivity。
个人觉得你当前的Activity 应该是support包的而并不是AndroidX下的。 建议你查看一下gradle文件。
是这个吗 该改什么么?