【问题标题】:Android: Unable to set getContext() in non-static method - requires API Level 23Android:无法在非静态方法中设置 getContext() - 需要 API 级别 23
【发布时间】:2016-08-12 16:27:32
【问题描述】:

下面是一些从非静态方法调用的源代码。我收到了错误

"调用需要 API 级别 23(当前最低为 15); android.app.Fragment#getContext"

android.content.Context context = (Context) getContext();

如何获取上下文对象?

在对象资源管理器 > Gradle 脚本 > build.gradle 下,我看到了这个。对我来说看起来像第 23 版。我在寻找正确的位置吗?

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.3"

    defaultConfig {
        applicationId "com.example.test.test"
        minSdkVersion 15
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.2.1'
    compile 'com.android.support:support-v4:23.2.1'
}

看起来我有 Android Studio 1.5.1。我刚刚在 Android Studio 中选择了 SettingsActivity 项目模板。并向该默认代码添加了一个类。

【问题讨论】:

  • 如果您改为拨打getActivity 会发生什么?

标签: android-studio android-api-levels


【解决方案1】:

你需要 import import android.support.v4.app.Fragment 而不是 import android.support.app.Fragment;

【讨论】:

    【解决方案2】:

    传递 getActivity() 而不是 getContext() 作为上下文。

    【讨论】:

      【解决方案3】:

      一种解决方法是将“this”(活动)转换为 Activity onCreate 方法内的(上下文)。

      【讨论】:

        猜你喜欢
        • 2017-10-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多