如何正确启动Android中的对象/数据

时间:2015-09-22 16:54:13

标签: java android

我想知道如何在没有获得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);
}

2 个答案:

答案 0 :(得分:1)

Button初始化类型时,只需删除EditTextonCreate类型。将类型设置为等于视图时,将类型声明为新变量,而不是引用类变量。

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);
}