2 回答
![?](http://img1.sycdn.imooc.com/533e564d0001308602000200-100-100.jpg)
TA贡献1773条经验 获得超3个赞
首先,在 Stack Overflow 答案中很难用基本的 java 和 Android 误解来解决问题。SO 不是针对这类问题而设计的,这就是为什么您会得到反对票的原因。所以,也就是说,我会尽力帮助你:
第一个回答:“onCreate 上的代码会正确运行吗?(这是我的第一个问题)”
不。你可能因为onCreateAndroid 的 Activity 类的方法而混淆了,对吧?但是构造函数对于java中的所有类都是通用的,而onCreate对于某些Android复杂类,如Activity或Fragment ,它是一种特定的方法。它是与这些类的生命周期相关的方法,您应该在此处阅读更多相关信息。
因此,在您展示的这个简单类中,不会在构造函数中调用 onCreate(除非您在构造函数中显式调用它)。您应该将文本分配给构造函数中的 textView。
第二个问题:“run 方法上的代码将被执行,并且还会传递在初始化时分配的文本变量?”
是的,它将运行并使用分配给this.text构造函数的变量。但是,您缺少此全局变量的声明才能使其正常工作:
public class setTextClass {
private TextView textView;
private String text; // You have to declare your global variables here
public void setTextClass (TextView textView, String text){ // You should pass your TextView in the constructor and assign it to your global variable, so it's not null when you assign text to it;
this.textView = textView;
this.text = text;
textview.setText(text); // Moved from your onCreate method to the constructor
}
public void run{
textview.setText(text);
}
}
我希望我能把自己说清楚,但你应该学习更多的 Java 并做一些基本的教程来更好地理解这门语言和它的概念,所以你可以在这里提出更具体的问题。
添加回答
举报