不明白为什么我会收到NullPointerException

Rossw19

我不明白为什么我的应用程序持续崩溃。根据LogCat的说法,它是由一行上的NullPointerExeption引起的,但是,我找不到原因。应该发生的是,通过在另一个活动上按下按钮,可以在MainActivity中更改ImageView的图像资源。我遵循了多个指南,但遇到了重复出现的错误。从我的观察中可以看到,当通过Intent传递额外的信息时,它为空,但是我找不到它。

LogCat

05-03 22:33:03.158: E/AndroidRuntime(31629): Caused by: java.lang.NullPointerException
05-03 22:33:03.158: E/AndroidRuntime(31629): at com.crackedporcelain.crackedcalibration.MainActivity.onCreate(MainActivity.java:21)

第21行(MainActivity中的违规者)

String gridPressed = content.getString("gridPressed");

主要活动(接收者)

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    Bundle content = getIntent().getExtras();

    // Set image based on which button was pressed
    String gridPressed = content.getString("gridPressed");
    ImageView spotlightOne = (ImageView) findViewById(R.id.variousOne);

    if (gridPressed.equals("one")) {
        spotlightOne.setImageResource(R.drawable.one);
    } else if (gridPressed.equals("two")) {
        spotlightOne.setImageResource(R.drawable.two);
    } else {
        spotlightOne.setImageResource(R.drawable.one);
    }

    ImageView buttonGrid = (ImageView) findViewById(R.id.phoneReference);

    buttonGrid.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            startActivity(new Intent(
                    "com.crackedporcelain.crackedcalibration.IDENTIFICATION"));
        }
    });
}

其他活动(发送者)

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.identification);

    ImageView gridButton1 = (ImageView) findViewById(R.id.buttonImage1);
    ImageView gridButton2 = (ImageView) findViewById(R.id.buttonImage2);

    gridButton1.setOnClickListener(this);
    gridButton2.setOnClickListener(this);
}

@Override
public void onClick(View v) {

    switch (v.getId()) {
    case R.id.buttonImage1:
        Intent oneA = new Intent(IdentificationActivity.this, MainActivity.class);
        oneA.putExtra("gridPressed", "one");
        startActivity(oneA);
        break;
    case R.id.buttonImage2:
        Intent oneB = new Intent(IdentificationActivity.this, MainActivity.class);
        oneB.putExtra("gridPressed", "two");
        startActivity(oneB);
        break;
    }
}

附加信息

这些类的布局已正确设置,可以正常工作。仅当我尝试使用Intent时,它才会强制关闭。感谢所有帮助!谢谢!

赛博

收到的意图不包含任何额外的值。确保发送意图的代码向意图添加了一个额外的String值,名称为“ gridPressed”。您可以为此使用Intent.putExtra(String,String)

Intent.getExtras()null如果没有多余的值,则将返回此外,如果中不包含键,则Bundle.getString(String key)将返回nullBundle

最后,请确保以其他任何方式检查MainActivity是否不可调用(例如单击应用程序图标时)。如果可以,则此版本的onCreate()会更好地工作:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    ImageView spotlightOne = (ImageView) findViewById(R.id.variousOne);

    // Set image based on which button was pressed, if any
    String gridPressed = getIntent().getStringExtra("gridPressed");
    if ("one".equals(gridPressed)) {
        spotlightOne.setImageResource(R.drawable.one);
    } else if ("two".equals(gridPressed)) {
        spotlightOne.setImageResource(R.drawable.two);
    } else {
        spotlightOne.setImageResource(R.drawable.one);
    }

    ImageView buttonGrid = (ImageView) findViewById(R.id.phoneReference);

    buttonGrid.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            startActivity(new Intent(
                    "com.crackedporcelain.crackedcalibration.IDENTIFICATION"));
        }
    });
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我不明白为什么我会收到此错误

来自分类Dev

我不明白为什么我会收到这个错误:[...] 有多个参数值 [...]

来自分类Dev

不明白为什么我会收到解析206错误(UserCannotBeAlteredWithoutSessionError)

来自分类Dev

不明白为什么我会收到拒绝权限的错误

来自分类Dev

我不明白为什么会收到此错误

来自分类Dev

我不明白为什么会收到以下错误

来自分类Dev

我不明白为什么会收到此valgrind错误

来自分类Dev

我不明白为什么会收到IllegalArgumentException:CardLayout的父错误

来自分类Dev

我不明白为什么会收到“分段错误(核心已转储)”错误

来自分类Dev

我是PHP的新手,我不明白为什么会收到这个未定义的变量错误

来自分类Dev

为什么我会收到java.lang.NullPointerException?

来自分类Dev

不明白为什么会收到错误CS0234

来自分类Dev

为什么我会收到PingException?

来自分类Dev

为什么我会收到AmbiguousForeignKeysError?

来自分类Dev

为什么我会收到OutOfMemoryException?

来自分类Dev

为什么我会收到ClassCastException?

来自分类Dev

为什么我会收到 ArrayIndexOutOfBoundsException?

来自分类Dev

不明白为什么会收到错误消息:无法从控制台找到或加载主类

来自分类Dev

收到运行时错误1004,我不明白为什么

来自分类Dev

我不明白为什么我会在ts-jest和sequelize中遇到此错误

来自分类Dev

NullPointerException - 我不明白出了什么问题

来自分类Dev

我不明白为什么我的波形是这样出来的

来自分类Dev

为什么我会收到SOA挖掘响应?

来自分类Dev

为什么我会收到类强制转换异常?

来自分类Dev

为什么我会收到Zlib :: DataError?

来自分类Dev

为什么我会收到此错误

来自分类Dev

为什么我会收到“太多争论”

来自分类Dev

为什么我会收到价值错误

来自分类Dev

为什么我会收到JavaScript参考错误?

Related 相关文章

  1. 1

    我不明白为什么我会收到此错误

  2. 2

    我不明白为什么我会收到这个错误:[...] 有多个参数值 [...]

  3. 3

    不明白为什么我会收到解析206错误(UserCannotBeAlteredWithoutSessionError)

  4. 4

    不明白为什么我会收到拒绝权限的错误

  5. 5

    我不明白为什么会收到此错误

  6. 6

    我不明白为什么会收到以下错误

  7. 7

    我不明白为什么会收到此valgrind错误

  8. 8

    我不明白为什么会收到IllegalArgumentException:CardLayout的父错误

  9. 9

    我不明白为什么会收到“分段错误(核心已转储)”错误

  10. 10

    我是PHP的新手,我不明白为什么会收到这个未定义的变量错误

  11. 11

    为什么我会收到java.lang.NullPointerException?

  12. 12

    不明白为什么会收到错误CS0234

  13. 13

    为什么我会收到PingException?

  14. 14

    为什么我会收到AmbiguousForeignKeysError?

  15. 15

    为什么我会收到OutOfMemoryException?

  16. 16

    为什么我会收到ClassCastException?

  17. 17

    为什么我会收到 ArrayIndexOutOfBoundsException?

  18. 18

    不明白为什么会收到错误消息:无法从控制台找到或加载主类

  19. 19

    收到运行时错误1004,我不明白为什么

  20. 20

    我不明白为什么我会在ts-jest和sequelize中遇到此错误

  21. 21

    NullPointerException - 我不明白出了什么问题

  22. 22

    我不明白为什么我的波形是这样出来的

  23. 23

    为什么我会收到SOA挖掘响应?

  24. 24

    为什么我会收到类强制转换异常?

  25. 25

    为什么我会收到Zlib :: DataError?

  26. 26

    为什么我会收到此错误

  27. 27

    为什么我会收到“太多争论”

  28. 28

    为什么我会收到价值错误

  29. 29

    为什么我会收到JavaScript参考错误?

热门标签

归档