【问题标题】:Adapter for a spinner makes NullPointerException微调器的适配器使 NullPointerException
【发布时间】:2015-09-18 22:37:38
【问题描述】:

我在我的值的一个文件夹中创建了一个数组列表,现在当我想通过从源文件夹中检索它来使其适应微调器时,它显示NullPointerException

 spinner = (Spinner) findViewById(R.id.spinner);

    ArrayAdapter adapter = ArrayAdapter.createFromResource(this,R.array.worker,android.R.layout.simple_list_item_1);
    spinner.setAdapter(adapter);
    spinner.setOnItemSelectedListener(this);

LogCat 中的消息:

 Caused by: android.content.res.Resources$NotFoundException: String array resource ID #0x7f090001 at android.content.res.Resources.getStringArray(Resources.java:527) at com.example.hay.myapplication.UserCreatingActivity.onCreate(UserCreatingActivity‌​.java:46) at android.app.Activity.performCreate(Activity.java:5990) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:227

【问题讨论】:

  • 发布您的 logcat 错误。
  • 微调器是否为空,正如 Deepak 所说,发布 logcat。
  • 添加了我的答案,可能与未使用数组适配器的类型和布局类型有关(检查我的修改)
  • @LucasCrawford 原因:android.content.res.Resources$NotFoundException:com.example 的 android.content.res.Resources.getStringArray(Resources.java:527) 处的字符串数组资源 ID #0x7f090001 .hay.myapplication.UserCreatingActivity.onCreate(UserCreatingActivity.java:46) 在 android.app.Activity.performCreate(Activity.java:5990) 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106) 在 android.app。 ActivityThread.performLaunchActivity(ActivityThread.java:227
  • @LucasCrawford מנהלאחראי משמרתצ׳קר מלצרטבח

标签: android nullpointerexception spinner android-spinner android-adapter


【解决方案1】:

尝试给 ArrayAdapter 一个类型:

ArrayAdapter<String> adapter = ArrayAdapter.createFromResource(this, R.array.worker, android.R.layout.simple_spinner_item);

【讨论】:

  • 它仍然向我显示 nullPointerExeption:原因:java.lang.NullPointerException:尝试在 android.content.res.AssetManager.getResourceTextArray(AssetManager.java:214) 处获取空数组的长度.content.res.Resources.getTextArray(Resources.java:503) at android.widget.ArrayAdapter.createFromResource(ArrayAdapter.java:430) at com.example.hay.myapplication.UserCreatingActivity.onCreate(UserCreatingActivity.java:45) at android.app.Activity.performCreate(Activity.java:5990) 在
  • 我又做了一次编辑。试试看。还要链接你的 R.array.worker
  • מנהלאחראי משמרתצ׳קרמלצר טבח
【解决方案2】:

因为你有例外:

 `Caused by: android.content.res.Resources$NotFoundException: String array resource ID #0x7f090001 at 

我看到你的问题是 createFromResource() 方法中的最后一个值:

 ArrayAdapter adapter = ArrayAdapter.createFromResource(this,R.array.worker,android.R.layout.simple_list_item_1);

最后一个值必须是数组:

 ArrayAdapter adapter = ArrayAdapter.createFromResource(this,android.R.layout.simple_list_item_1,R.array.worker);

【讨论】:

    【解决方案3】:

    尝试翻转createFromRessource中的最后两个参数:

    替换:

    ArrayAdapter adapter = ArrayAdapter.createFromResource(this,R.array.worker,android.R.layout.simple_list_item_1);
    

    作者:

    ArrayAdapter<String> adapter = ArrayAdapter.createFromResource(this, android.R.layout.simple_list_item_1, R.array.worker);
    

    在您的代码中:

        spinner = (Spinner) findViewById(R.id.spinner);
    
        ArrayAdapter<String> adapter = ArrayAdapter.createFromResource(this, android.R.layout.simple_list_item_1, R.array.worker);
        spinner.setAdapter(adapter);
        spinner.setOnItemSelectedListener(this);
    

    【讨论】:

      【解决方案4】:

      改变

       attr.xml
      

      目录

      来自

      ...\app\src\main\res\values-w820dp
      

      ...\app\src\main\res\values
      

      【讨论】:

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