我想知道如何在没有获得NPE的情况下正确启动我的活动中的对象? 通常我在onCreate()方法中初始化我的对象,但是当我这样做时,我以后无法访问它们,例如在onClick()方法中。 什么是正确的方法?
谢谢Jérôme
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);
}
答案 0 :(得分:1)
在Button
初始化类型时,只需删除EditText
和onCreate
类型。将类型设置为等于视图时,将类型声明为新变量,而不是引用类变量。
sendButton = (Button) findViewById(R.id.button);
textMessage = (EditText) findViewById(R.id.message);
答案 1 :(得分:0)
现在,您可以在此活动的任何位置使用此控件
Button sendButton;
EditText textMessage;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
sendButton = (Button) findViewById(R.id.button);
textMessage = (EditText) findViewById(R.id.message);
}