gpt4 book ai didi

java - 在类的成员函数中使用类的私有(private)变量

转载 作者:行者123 更新时间:2023-12-01 17:06:40 25 4
gpt4 key购买 nike

当我使用如下所示的 EditText 字段时,我收到错误消息,您的应用程序已因控制台错误而停止 “ channel 已不可恢复地损坏并将被处置”

public class SignupActivity extends ActionBarActivity {
EditText name = (EditText) findViewById(R.id.name);

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_signup);
Intent resign = getIntent();
}

public void signUp() {
String tname = name.getText().toString();
}
}

当我将类(class)更改为时,效果很好,

public class SignupActivity extends ActionBarActivity { 
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_signup);
Intent resign = getIntent();
}

public void signUp() {
EditText name = (EditText)findViewById(R.id.name);
String tname = name.getText().toString();
}
}

为什么当我使用上面的代码时它不起作用,请帮忙,先谢谢

最佳答案

您在 onCreate() 之前调用 findViewById() 太早了。它将出现 NPE,因为还没有 Window 可以在其中找到 View 。

通常,您不应在 onCreate() 之前调用任何 Activity 方法。

findViewById() 的正确位置是 onCreate() 或更高版本,以便有一个 Window,并且位于 setContentView() 之后 这样才能真正找到一些东西。

关于java - 在类的成员函数中使用类的私有(private)变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25257277/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com