作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想知道如何在不获得 NPE 的情况下正确初始化 Activity 中的对象?通常我在 onCreate() 方法中初始化我的对象,但是当我这样做时,我无法稍后在 onClick() 方法中访问它们。正确的做法是什么?
谢谢杰罗姆
public class MainActivity extends ActionBarActivity {
Button sendButton;
EditText textMessage;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button sendButton = (Button) findViewById(R.id.button);
EditText textMessage = (EditText) findViewById(R.id.message);
}
public void sendMessage() {
setContentView(R.layout.activity_main);
String actualMessage = textMessage.getText().toString();
System.out.println(actualMessage);
}
最佳答案
当您在 onCreate
中初始化 Button
和 EditText
类型时,只需删除它们即可。当您将类型设置为等于 View 时,会声明一个新变量,而不是引用类变量。
sendButton = (Button) findViewById(R.id.button);
textMessage = (EditText) findViewById(R.id.message);
关于java - 如何在Android中正确初始化对象/数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32722543/
我是一名优秀的程序员,十分优秀!