为什么Android Studio不自动导入正确的软件包android.support.v4.app.Fragment

时间:2016-08-05 21:13:10

标签: java android android-studio intellij-idea

我在 Android Studio V2.0中有自动导入的以下设置,我创建了一个新的Fragment类,如下所示

import android.app.Fragment;

public class MyFragment1 extends Fragment {

// some code
}

enter image description here

但是当我尝试在FragmentPagerAdapter中使用它时,如下所示

public class MyFragmentPagerAdapter extends FragmentPagerAdapter {

public MyFragmentPagerAdapter(FragmentManager fm) {
    super(fm);
}

@Override
public Fragment getItem(int position) {
    switch (position) {
        case 0:
            return new MyFragment1(); //error here
        case 1:
            return new MyFragment2(); //error here
    }
}

我收到此错误:

  

不兼容的类型。找到:'com.example.android.viewpager.MyFragment1',必填:'android.support.v4.app.Fragment'

当然,当我将MyFragment1上的导入从android.app.Fragment更改为android.support.v4.app.Fragment时,错误将消失

我的问题是:为什么Android Studio不会自动导入正确的包? 这是Android Studio中的错误还是我做错了什么?

2 个答案:

答案 0 :(得分:2)

导入课程时,包名称是按字母顺序排列的。

它只是解析了它找到的第一个。

enter image description here

你应该有"显示导入弹出窗口"如果您希望它为您提供使用哪个选项,则启用该选项。

enter image description here

答案 1 :(得分:0)

您可以做的一件事是首先在弹出窗口显示时键入Fragment,然后按下转义键忽略它。完成输入后,按Alt + Enter(鼠标光标应该在片段上方),现在它将显示弹出窗口中有两个导入选项,在这里您可以选择所需的一个。

按下Alt + Enter键的同时,如果只有one possible导入,则会自动导入而不会弹出任何内容。