【问题标题】:Whats wrong with this line of code?这行代码有什么问题?
【发布时间】:2012-01-13 23:39:58
【问题描述】:

我从 logcat 收到错误:

 01-13 17:53:25.368: E/AndroidRuntime(3235): Caused by: java.lang.NullPointerException
01-13 17:53:25.368: E/AndroidRuntime(3235):     at android.app.activity3.onCreate(activity3.java:18)

对于这段代码。所以第 18 行*有问题

 Button wg = (Button) findViewById(R.id.Back);
        wg.setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {
                Intent intent = new Intent();
                setResult(RESULT_OK, intent);
                finish();
            }

        });
    }
}

这是第 18 行:

wg.setOnClickListener(new View.OnClickListener() {

谢谢!

【问题讨论】:

  • 嗯,NullPointerException on wg.someMethod() 是一个提示。
  • 是的,我有点猜测它没有找到那个视图。
  • 您忘记设置内容视图了吗?它是正确的布局文件吗?它发生在这段代码之前吗?
  • 怎么找不到视图?
  • 如何设置内容视图?

标签: java android xml button


【解决方案1】:

wg 为空。 findViewById 似乎返回 null。

【讨论】:

  • 这可能是真的,但我该如何解决?
【解决方案2】:

这里可能会发生两件事:

1) 您忘记在您的onCreate() 方法中调用setContentView() 方法。

2) 您使用setContentView() 加载的 XML 文件中不存在您的 ID R.id.Back

如果 ID 错误,您会在 eclipse 中看到错误,最可能的原因是您忘记在活动的 onCreate() 方法中调用 setContentView(R.layout.some_layout_xml_file)

【讨论】:

  • 我实际上做了大声笑 public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main3);
【解决方案3】:

NullPointerExceptions 用于例如引用不存在的对象时;

SomeObject someObj;

public static void main (String[] args) {
    someObj.someMethod();
}

会给你一个 NullPointerException, where as;

SomeObject someObj;

public static void main (String[] args) {
    someObj = new SomeObject();
    someObj.someMethod();
}

再见。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-25
    • 2018-09-09
    相关资源
    最近更新 更多