我以編程方式創建佈局,並且需要添加一個TextView。唯一的問題是,我需要使TextView成爲一個全局變量,因此可以在不同的方法中訪問它(需要在別處調用setText()方法)。以編程方式添加到Android佈局 - 然後訪問從另一個方法創建的內容
ScrollView scroll = new ScrollView(this);
LinearLayout linear = new LinearLayout(this);
linear.setOrientation(LinearLayout.VERTICAL);
scroll.addView(linear);
TextView time = new TextView(this);
time.setText("Some text");
linear.addView(time);
new CountDownTimer(30000, 1000) {
public void onTick(long millisUntilFinished) {
time.setText("seconds remaining: " + millisUntilFinished/1000);
} // 'time' not accessible
public void onFinish() {
time.setText("done!");
}
}.start(); */
this.setContentView(scroll);
所以我的問題是我創建'時間'TextView但CountDownTimer方法無法訪問它。我嘗試使用構造函數的TextView time = new TextView(this);
作爲全局代碼,但是這會導致異常 - 「無法實例化活動ComponentInfo」和「空點異常」。這個例外並不表示哪條線特別引起問題,但確實是TextView timeLeft = new TextView(this);
!
爲什麼不使用XML佈局文件來定義視圖?只是好奇。 – Squonk 2011-04-21 17:18:26
另外,在你的代碼中你調用了setContentView? – Squonk 2011-04-21 17:28:04
這只是代碼的一部分(我遇到問題的部分)。我之前以編程方式創建佈局作爲不確定數量的按鈕的原因被添加到它之前。 setContentView是(如上所述),位於每個按鈕後面的代碼底部,並將'time' TextView添加到佈局中。 – james246 2011-04-21 17:33:08