首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >AlertDialog在一个字符串数组上崩溃,而在另一个数组上不崩溃-它们看起来是一样的吗?

AlertDialog在一个字符串数组上崩溃,而在另一个数组上不崩溃-它们看起来是一样的吗?
EN

Stack Overflow用户
提问于 2015-10-11 10:29:32
回答 1查看 138关注 0票数 1

我在安卓设备中为AlertDialog动态构建字符串数组。我创建的字符串数组1如下所示:

代码语言:javascript
运行
复制
 final int       SAMPLERATES_NUM = 9;
 String[]       SampleRates_Str = new String[SAMPLERATES_NUM];

 SampleRates_Str[ValidSampleRate_Index] = Integer.toString(SampRate);

现在,我只需通过以下方法创建字符串的array2:

代码语言:javascript
运行
复制
 String[] SampleRates_Str1 = {"48000", "44100", "32000", "22050", "16000", "11025", "8000", "4000"};

现在我调用AlertDialog并呈现这两个数组(一次一个)。系统在SampleRates_Str上崩溃,但在SampleRates_Str1上工作-但当我在ADK中检查它们时,它们显示的内容完全相同(至少对我来说是这样)……

代码语言:javascript
运行
复制
public void createListAlertDialog() {
    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setTitle("Pick a Sampling Rate");
     String[] SampleRates_Str1 = {"48000", "44100", "32000", "22050", "16000", "11025", "8000", "4000"};
    builder.setSingleChoiceItems(SampleRates_Str1, SampleRates_Index,
            new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int item) {
                    SampleRates_Index = item;
                }
            });

    builder.setPositiveButton("OK", new DialogInterface.OnClickListener() { // Add the OK button
                public void onClick(DialogInterface dialog, int which) {
                    PickFsDone = true;
                }
            }
     );

    AlertDialog alert = builder.create();
    alert.show();
}

为什么会有不同?

崩溃日志中的前几行:

代码语言:javascript
运行
复制
10-11 04:56:36.746: E/AndroidRuntime(3144): FATAL EXCEPTION: main
10-11 04:56:36.746: E/AndroidRuntime(3144): Process: processing.test.soundanalyzer, PID: 3144
10-11 04:56:36.746: E/AndroidRuntime(3144): java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.lang.Object.toString()' on a null object reference 
10-11 04:56:36.746: E/AndroidRuntime(3144): at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:394)

提前感谢,致以Rob的问候。

EN

回答 1

Stack Overflow用户

发布于 2015-10-11 10:44:49

array1只有8个变量。所以

代码语言:javascript
运行
复制
final int       SAMPLERATES_NUM = 9;

应该是

代码语言:javascript
运行
复制
final int       SAMPLERATES_NUM = 8;

或者至少有一个变量未初始化为空。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33060960

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档