Java 以编程方式创建布局-两个基本问题

Java 以编程方式创建布局-两个基本问题,java,android,this,nested-class,layoutparams,Java,Android,This,Nested Class,Layoutparams,以下代码片段中有几个问题: @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // creating LinearLayout LinearLayout linLayout = new LinearLayout(this); //****QUESTION 2********* // s

以下代码片段中有几个问题:

@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // creating LinearLayout
        LinearLayout linLayout = new LinearLayout(this); //****QUESTION 2*********
        // specifying vertical orientation
        linLayout.setOrientation(LinearLayout.VERTICAL);
        // creating LayoutParams  
        LayoutParams linLayoutParam = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT); //*****QUESTION 1***
        // set LinearLayout as a root element of the screen 
        setContentView(linLayout, linLayoutParam);
    }
  • 基类是ViewGroup.LayoutParams,即LayoutParams是一个 视图组的嵌套类。我也读过,这是一个静态的 嵌套类。所以我们为什么不使用外部类的 名称和点符号:

    ViewGroup.LayoutParams linLayoutParam = new ViewGroup.Layout(...);
    
  • 在下面的语句中,什么对象是Java中的“
    this
    ”?
    在编程语言中,方法中的this关键字是指
    当前
    对象,即此方法所属的对象。但是我们没有在
    Android
    中显式调用(使用对象)onCreate()

    LinearLayout linLayout = new LinearLayout(this);
    
  • 。。。那么,我们为什么不使用外部类的名称和点表示法来引用它呢

    您似乎没有意识到Java语言中的错误。大多数情况下,我喜欢您建议的方式,即使用外部类名和点状的
    ViewGroup.LayoutParams来引用内部类,而不是使用静态导入。但是,在某些情况下,如果您可能不得不多次这样做,那么最好是进行静态导入,而不是重复类名。在使用诸如JUnit之类的单元测试框架时,您会经常看到这种情况,JUnit随类提供了许多静态方法

    。。。在下面的语句中,“this”是什么对象

    在您的方法中,通过使用关键字-
    this
    ,您指的是您在其中声明/定义实例方法的类的当前实例(即方法
    @Override public void onCreate(Bundle savedInstanceState)