【问题标题】:Why Android Studio doesn't Auto Import the correct package android.support.v4.app.Fragment为什么 Android Studio 不自动导入正确的包 android.support.v4.app.Fragment
【发布时间】:2016-08-05 21:13:09
【问题描述】:

我在 Android Studio V2.0 中对 Auto Import 进行了以下设置,并创建了一个新的 Fragment 类,如下所示

import android.app.Fragment;

public class MyFragment1 extends Fragment {

// some code
}

但是当我尝试在 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 中的错误还是我做错了什么?

【问题讨论】:

    标签: java android android-studio intellij-idea


    【解决方案1】:

    导入类时,包名按字母顺序排列。

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

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

    【讨论】:

    • 这似乎合乎逻辑,但我还有另一个问题。我检查了“显示导入弹出窗口”,但它没有显示并且仍然进行自动导入。这个问题之前stackoverflow.com/q/30280289/6180768已经报过
    • 不确定。我通常不信任同名类的自动导入。
    【解决方案2】:

    您可以做的一件事是在弹出窗口出现时首先键入Fragment,只需按退出键即可忽略它。输入完成后,按Alt + Enter(鼠标光标应该在Fragment上),现在它会弹出两个导入选项,在这里你可以选择你想要的一个。

    如果只有one possible 导入可用,则在按 Alt + Enter 时,它将自动导入而不会弹出任何窗口。

    【讨论】:

      猜你喜欢
      • 2013-12-21
      • 2020-02-01
      • 1970-01-01
      • 2019-07-03
      • 2013-06-15
      • 1970-01-01
      • 1970-01-01
      • 2022-12-14
      • 1970-01-01
      相关资源
      最近更新 更多