【问题标题】:'this' is not available android studio'this' 不可用 android studio
【发布时间】:2017-01-31 02:29:24
【问题描述】:

在调试窗口中使用警报对话框时,我收到此消息:“'this' is not available”

我看到了 2 个与我类似的问题(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 - 'this' is not available”。警报对话框未出现,活动崩溃。

EDIT2:数组的初始化:

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

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

【问题讨论】:

  • 你有什么问题?
  • @KNeerajLal,我更新了问题。
  • 你能发一下logcat吗?
  • 显示初始化“regions_chosen”和“regions”的代码
  • @DEADMC,我更新了问题。 Regions.getRegions 是 86 个字符串元素的静态数组

标签: android android-studio this


【解决方案1】:

改变

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

【讨论】:

  • 是的,完全!但肯定没有修饰符'final'。非常感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-07-25
  • 1970-01-01
  • 2019-01-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-03
相关资源
最近更新 更多