我以编程方式创建布局,并且需要添加一个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