2 回答

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 并做一些基本的教程來更好地理解這門語言和它的概念,所以你可以在這里提出更具體的問題。
添加回答
舉報