给定以下示例:

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()之后调用它。

07-27 14:00