给定以下示例:
public class MainActivity extends ActionBarActivity {
int numberOfQuantity=0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
TextView quantity = (TextView) findViewById(R.id.quantity_text_view);
public void Increment(View view) {
numberOfQuantity++;
quantity.setText("" + numberOfQuantity);
}
public void Decrement(View view){
numberOfQuantity--;
quantity.setText("" + numberOfQuantity);
}
}
为什么我不能只在方法之外使用以下代码行:
TextView quantity = (TextView) findViewById(R.id.quantity_text_view);
每当我将其放在递增和递减方法上时,递减都不起作用。
最佳答案
在对象构造阶段执行位于方法外部(即,在类本身的声明中)的语句。到那时,活动还没有绑定到布局,也没有与之关联的视图。因此,findViewByID()无法找到任何内容。您仅应在onContent()中调用的setContentView()之后调用它。