初学Android,简述View组件(三)

news/2024/7/4 0:49:03 标签: android, layout, button, ui, class, 编程
class="baidu_pl">
class="article_content clearfix">
class="htmledit_views">

Android所有的UI组件都是建立在View,ViewGroup基础之上,ViewGroup又是继承View的子类,作为容器来盛装其它组件,而ViewGroup除了可以包含普通View组件外,还可以再次包含ViewGroup组件,也就是可以嵌套使用。

ViewGroup容器控制其子组件的分布依赖于ViewGroup.LayoutParams,ViewGroup.MarginLayoutParams两个内部类。在些不详述它们的API了,写出来没什么意义,到处都有。

下面用编程方式(不使用XML布局文件)开发UI界面

class="language-java">package WangLi.UI.Space;

import class="tags" href="/tags/ANDROID.html" title=android>android.app.Activity;
import class="tags" href="/tags/ANDROID.html" title=android>android.os.Bundle;
import class="tags" href="/tags/ANDROID.html" title=android>android.view.View;
import class="tags" href="/tags/ANDROID.html" title=android>android.view.View.OnClickListener;
import class="tags" href="/tags/ANDROID.html" title=android>android.view.ViewGroup;
import class="tags" href="/tags/ANDROID.html" title=android>android.widget.Button;
import class="tags" href="/tags/ANDROID.html" title=android>android.widget.LinearLayout;
import class="tags" href="/tags/ANDROID.html" title=android>android.widget.TextView;

public class UIActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //创建一个线性布局管理器
        LinearLayout class="tags" href="/tags/LAYOUT.html" title=layout>layout = new LinearLayout(this);
        //设置该Activity显示class="tags" href="/tags/LAYOUT.html" title=layout>layout
        super.setContentView(class="tags" href="/tags/LAYOUT.html" title=layout>layout);
        class="tags" href="/tags/LAYOUT.html" title=layout>layout.setOrientation(LinearLayout.VERTICAL);
        //创建一个TextView
        final TextView show = new TextView(this);
        //创建一个按钮
        Button bn = new Button(this);
        bn.setText("单击我");
        bn.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,
        		ViewGroup.LayoutParams.WRAP_CONTENT));
        //向Layout容器中添加TextView
        class="tags" href="/tags/LAYOUT.html" title=layout>layout.addView(show);
        //向Layout容器中添加按钮
        class="tags" href="/tags/LAYOUT.html" title=layout>layout.addView(bn);
        //为按钮绑定一个事件监听器
        bn.setOnClickListener(new OnClickListener(){  
            public void onClick(View v)  
            {  
                show.setText("Hello Android ~" + new java.util.Date());  
            }  
        });  
    }
}
此例出来的效果和第一篇一样


http://www.niftyadmin.cn/n/1411447.html

相关文章

Vue的项目开发,你应该知道什么

Vue进行项目开发,我们需要懂得知识栈,应该由这么一些部分构成:vue.js、vue-router、vuex、axios、vue的单文件组件、element-ui等。这些部分,就是vue项目开发的全家桶。 1、vue.js vue.js——是vue开发的基础。这些基础的技能组…

当Kotlin遇见RxJava多数据源

温馨提醒 阅读本文最好有Kotlin基础,若没有基础,可参考之前文章Kotlin初探,使用Kotlin优雅的开发Android应用,以及RxJava基础(本文基于RxJava2),当然我也会尽可能详细解释让你顺利阅读本文。 源…

初学Android,开发自定义的View(四)

下面是一个小例子,跟随手指的小球 创建一个继承自View的类,用来绘制圆形package WangLi.CustomView.Space;import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import an…

在vue中封装echarts

echarts是什么 echarts是一个绘制图表的js库。它的底层是使用canvas实现的。比如下面的这类图表&#xff0c;就是使用echarts实现的。 echarts在web网页中的使用 和其他的js库一样&#xff0c;echarts在网页中使用的时候&#xff0c;需要使用script引入它的js库。 <sc…

Avoid using px as units; use dp instead

今天在写程序的时候&#xff0c;使用px设置组件宽度&#xff0c;弹出Avoid using "px" as units; use "dp" instead的提示&#xff0c;并且编译不通过 dp是可以根据屏幕大小变化的&#xff0c;而px就不行&#xff0c;主要是Android不主张再使用固定的长度单…

AI?人工智能?我们真的不考虑后果吗?

最近、百度CEO李彦宏摊上了一件事&#xff0c;坐着一辆无人驾驶的汽车在北京五环公路上行驶&#xff0c;交警部门回应&#xff0c;要调查此事。无人驾驶&#xff0c;在技术的层面&#xff0c;我们已经可以做到了&#xff0c;作为一个程序猿的我&#xff0c;该以什么样的态度来面…

[algorithm] Dijkstra双栈算法表达式求值算法

一、原理 Dijkstra所做的一个算法&#xff0c;双栈求值&#xff0c;用两个栈&#xff08;一个保存运算符&#xff0c;一个用于保存操作数&#xff09;&#xff0c; 表达式由括号&#xff0c;运算符和操作数组成。 (1).将操作数压入操作数栈 (2).将运算符压入运算符栈&#xff1…

vue路由组件传参-页面通信

vue路由传参&#xff0c;是页面通信的重要组成部分&#xff0c;而掌握路由传参&#xff0c;必须要认识一个重要对象-$route。&#xff08;切记&#xff0c;是$route,而不是$router&#xff09; $route对象 这是一个专门用于记录vue组件参数的对象。 例如&#xff1a; //rou…