'这'不可用android studio

时间:2016-09-22 13:21:28

标签: android this

我在调试窗口中使用警告对话框时有这条消息:"'这个'不可用"

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

我的傻瓜:

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 - '这个'不可用"。警报对话框未显示,活动崩溃。

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

1 个答案:

答案 0 :(得分:2)

更改

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]);