EditText变量未在另一个类中分配

时间:2014-03-12 19:08:14

标签: java android oop

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

    TextView t = (TextView) findViewById(R.id.textView3);
    EditText e1 = (EditText) findViewById(R.id.editText1);
    EditText e2 = (EditText) findViewById(R.id.editText2);
}

private void person() {
    String name = e1.getText();
    String phone = e2.getText();
}

为什么我不能在人员课程中访问e1e2?错误; <{1}}和e1无法解决。

1 个答案:

答案 0 :(得分:1)

好:

  • person 一个class,是method
  • 您无法访问e1e2,因为它们是onCreate方法的本地variables

您应该将e1e2作为班级的字段移动。

所以它将是

// e1 and e2 are not anymore inside any method, so they will be fields of the class
EditText e1; 
EditText e2;

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

    TextView t = (TextView) findViewById(R.id.textView3);
    e1 = (EditText) findViewById(R.id.editText1);
    e2 = (EditText) findViewById(R.id.editText2);
}

// person method can use them without problems
private void person()
{
    String name = e1.getText();
    String phone = e2.getText();
}