一、问题描述:
今天刚开始学习Android中的fragment,编程时候遇到如下问题:
系统找不到AppCompatActivity
二、解决方法:
在build.gradle内的dependecies中加入如下代码:
implementation "com.android.support:appcompat-v7:27.1.1"
AppCompatActivity和FragmentActivity都需要这类包
后来我又遇到了第二个问题:
一、问题描述:
查看Log发现:
C:\Users\h'p\Desktop\BlueTooth\FragmentTest\app\src\main\java\com\example\fragmenttest\MainActivity.java:24: 错误: 不兼容的类型: AnotherRightFragment无法转换为Fragment
replaceFragment(new AnotherRightFragment());
^
C:\Users\h'p\Desktop\BlueTooth\FragmentTest\app\src\main\java\com\example\fragmenttest\MainActivity.java:33: 错误: 不兼容的类型: android.app.Fragment无法转换为android.support.v4.app.Fragment
transaction.replace(R.id.right_layout, fragment);
二、解决方法:
包导入错了,把import android.app.Fragment;这个删了,重新导入android.support.v4.app.Fragment
结果如下:
import android.app.Activity;
import android.support.v4.app.Fragment;
import android.app.FragmentManager;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentTransaction;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
注意android.support.v4.app.Fragment与andorid.app.Fragment不能同时被导入。
并注意每个class中都要把app.Fragment进行修改
在建立Fragment时,可以选择系统内置的android.app.Fragment 或者support-v4库中的andorid.support.v4.Fragment,强烈建议后者,并且我们只需要在bulid.gradle文件中加入appcompat-v7库的支持,support-v4库就会被自动导入