android - 'this' 不可用 android studio

标签 android android-studio this

我在调试窗口中使用警报对话框时收到此消息:“‘this’不可用”

我看到了 2 个与我的相似的问题(thisthis),但我没有 Hugo,我找不到解决方案。

我的gradle:

apply plugin: 'com.android.application'

android {
compileSdkVersion 24
buildToolsVersion "24.0.1"

defaultConfig {
    minSdkVersion 14
    targetSdkVersion 24
    versionCode 1
    versionName "1.0"
    vectorDrawables.useSupportLibrary = true
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
  }
}

dependencies {
   compile fileTree(dir: 'libs', include: ['*.jar'])
   compile files('libs/androidsvg-1.2.1.jar')
   compile 'com.android.support:appcompat-v7:24.2.0'
   compile 'com.android.support:design:24.2.0'
   compile 'com.android.support:support-v13:24.2.0'
   compile 'com.android.support:cardview-v7:24.2.0'
   compile 'com.android.support:support-v4:24.2.0'
   compile 'com.android.support:support-vector-drawable:24.2.0'
   compile 'com.android.support:recyclerview-v7:24.2.0'
   testCompile 'junit:junit:4.12'
   compile 'com.android.support.constraint:constraint-layout:1.0.0-alpha1'
}

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    repositories {
        jcenter()
    }
dependencies {
    classpath 'com.android.tools.build:gradle:2.2.0'
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

和我的 AlertDialogBu​​ilder 代码,它在字符串 .setMultiChoiceItems 上失败

AlertDialog.Builder builder = new AlertDialog.Builder(AddKeyActivity.this, R.style.MyAlertDialogStyle);
            builder.setTitle(R.string.choose_region)
                    .setMultiChoiceItems(regions, regions_chosen, new DialogInterface.OnMultiChoiceClickListener() {
@Override 
public void onClick(...) {...}
....

}

实际上在 Activity 中我还有一个 AlertDialog.Builder,它工作得很好。

拜托,你能帮我找出问题吗

编辑:问题是在调试窗口中我看到“regions_chosen - 'this'不可用”。警报对话框未出现, Activity 崩溃。

EDIT2:数组的初始化:

final String[] regions = new String[Regions.getRegions().size()];
Regions.getRegions().toArray(regions);

boolean[] regions_chosen = new boolean[Regions.getRegions().size()];

This is what I saw

最佳答案

改变

String[] regions = new String[Regions.getRegions().size()];
Regions.getRegions().toArray(regions);

到,

String[] regions = new String[Regions.getRegions().size()];
regions = Regions.getRegions().toArray(regions);

你可以优化上面的内容,

String[] regions = Regions.getRegions().toArray(new String[0]);

关于android - 'this' 不可用 android studio,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39640266/

相关文章:

java - android.app.Application 无法转换 Yamba 应用程序?

android-studio - Android Studio中的Javadoc @link引用以build.gradle

java - 为什么对 TextView 使用 strings.xml 是个好习惯?

kotlin - 当用 `@` 表示接收者时, `this` 标签在 Kotlin 中的位置

c++ - 连接功能

ANDROID,解析来自网络服务器的 JSON 数据并显示在 ListView 上

java - 如何更新 Firebase 数据库

javascript - 如何从显示原型(prototype)访问我的实例 'this'?

Android textview 测试在其他 UI 上

Android Studio 2.1.1 运行旧的 .apk 文件