有兩個類。 MainActivity,我在其中設置視圖,以及我想從中更新MainActivity中的視圖的ClassX。 ClassX是一個從MainActivity調用的AsyncTask,如果這是相關的。Android/Java:從另一個類更改視圖?
我想要做的是更改名爲mainTextLog的視圖的文本。我已經聲明瞭一個全局TextView變量,並且在onCreate()方法中,我使用findViewById()將其設置爲視圖。
private TextView logger;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
logger = (TextView) findViewById(R.id.mainTextLog);
}
現在我應該能夠改變onCreate()的文本,我可以。但因爲我想從另一個類的改變(ClassX)我需要爲它創建一個方法:
public void setLogText(String text) {
logger.setText(text);
}
但它不工作。我試過讓記錄器和setLogText()方法是靜態的,但它仍然不起作用。該應用只是崩潰。
這可能很容易,但我沒有想法。
我沒有代表對給出的答案進行評論,我很抱歉,這不是一個實際的答案,但請注意,你不能創建一個靜態涉及findViewById的方法,因爲findViewById是非靜態的。 (就GHz給出的答案而言)。 – SeaNick