博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android 动态生成控件
阅读量:4055 次
发布时间:2019-05-25

本文共 2157 字,大约阅读时间需要 7 分钟。

动态生成界面
的方法很简单
首先要却这个界面的布局,是AbsoluteLayout,RelativeLayout还是其他,然后就可以再里面添加控件了:
public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //确定界面的布局
        AbsoluteLayout abslayout=new AbsoluteLayout (this);
        setContentView(abslayout);
        //创建一个button按钮
        Button  btn1 = new Button(this);
        btn1.setText(\"this is a button\");
        btn1.setId(1);
        //确定这个控件的大小和位置
       AbsoluteLayout.LayoutParams lp1 = 
                                 new AbsoluteLayout.LayoutParams(
                                      ViewGroup.LayoutParams.WRAP_CONTENT,
                                      ViewGroup.LayoutParams.WRAP_CONTENT,
                                      0,100);
      abslayout.addView(btn1, lp1 );
}
一个界面可以布置一个布局,可以多个布局一起设计:
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        
        //设置界面的布局
        RelativeLayout relativeLayout = new RelativeLayout(this);
        setContentView(relativeLayout);
        
        //添加一个AbsoluteLayout子布局,并给这个布局添加一个button
        AbsoluteLayout abslayout=new AbsoluteLayout (this);
        abslayout.setId(11);
        Button  btn1 = new Button(this);
        btn1.setText(\"this is a abslayout button\");
        btn1.setId(1);
        AbsoluteLayout.LayoutParams lp0 = new AbsoluteLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,
                                                                          ViewGroup.LayoutParams.WRAP_CONTENT,100,0);
        abslayout.addView(btn1, lp0 );
        //将这个子布局添加到主布局中
        RelativeLayout.LayoutParams lp1 = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
        lp1.addRule(RelativeLayout.ALIGN_PARENT_TOP);
        lp1.addRule(RelativeLayout.CENTER_HORIZONTAL, RelativeLayout.TRUE);
        relativeLayout.addView(abslayout ,lp1);
        
        //再添加一个子布局
        RelativeLayout relativeLayout1 = new RelativeLayout(this);
        Button  btn2 = new Button(this);
        btn2.setText(\"this is a relativeLayout1 button\");
        btn2.setId(2);
        RelativeLayout.LayoutParams lp2 = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
        lp2.addRule(RelativeLayout.ALIGN_PARENT_TOP);
        lp2.addRule(RelativeLayout.CENTER_HORIZONTAL, RelativeLayout.TRUE);
        relativeLayout1.addView(btn2 ,lp2);
        
        //将这个布局添加到主布局中
        RelativeLayout.LayoutParams lp11 = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
        lp11.addRule(RelativeLayout.BELOW ,11);
        relativeLayout.addView(relativeLayout1 ,lp11);
}

转载地址:http://tsqci.baihongyu.com/

你可能感兴趣的文章
Binary Tree Level Order Traversal
查看>>
Symmetric Tree
查看>>
Two Sum
查看>>
Longest Substring Without Repeating Characters
查看>>
Container With Most Water
查看>>
Letter Combinations of a Phone Number
查看>>
3Sum
查看>>
Trapping Rain Water
查看>>
Pow(x, n)
查看>>
Partition List
查看>>
Fraction to Recurring Decimal
查看>>
Find Peak Element
查看>>
Maximum Product Subarray
查看>>
3Sum Closest
查看>>
4Sum
查看>>
Merge k Sorted Lists
查看>>
Largest Number
查看>>
MySQL查询及删除重复记录的方法
查看>>
Convert Sorted Array to Binary Search Tree
查看>>
Permutations
查看>>