从头开始学一个android activity

一、类层次结构:

 

二、什么是Activity,如何理解Activity

1、  用户与应用程序的交互的接口

2、  控件的容器,我们要把控件摆放在这个容器中

 

 

三、如何创建一个Activity

新建一个类:

1、  继承Activity类

[java] view plaincopyprint?
  1. package com.jiahui.activity;  
  2.   
  3.    
  4.   
  5. import android.app.Activity;  
  6.   
  7. import android.os.Bundle;  
  8.   
  9.    
  10.   
  11. public class MyActivity01Activity extends Activity {  
  12.   
  13.     /** Called when the activity is first created. */  
  14.   
  15.     @Override  
  16.   
  17.     public void onCreate(Bundle savedInstanceState) {  
  18.   
  19.         super.onCreate(savedInstanceState);  
  20.   
  21.         setContentView(R.layout.main);  
  22.   
  23.     }  
  24.   
  25. }  


2、  重写onCreate()方法,Activity第一次运行时就会调用这个方法,这个方法的调用者是由应用程序框架系统调用

3、  在AndroidMainfest.xml中注册(至于AndroidMainfest.xml)

  

[html] view plaincopyprint?
  1. <activity android:name=".MyActivity01Activity"  
  2.   
  3.              android:label="@string/app_name">  
  4.   
  5.        <intent-filter>  
  6.   
  7.            <action android:name="android.intent.action.MAIN" />  
  8.   
  9.            <category android:name="android.intent.category.LAUNCHER" />  
  10.   
  11.        </intent-filter>  
  12.   
  13.    </activity>  


这样一个Activity就被创建了

为了显示好看,我们可以为Activity中添加一些必要的控件,在这里我们添加一个TextView

打开Layout文件下的main.xml中所有的控件都必须在这里注册

[html] view plaincopyprint?
  1. <?xml version="1.0" encoding="utf-8"?>  
  2.   
  3. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  4.   
  5.    android:orientation="vertical" android:layout_width="fill_parent"  
  6.   
  7.    android:layout_height="fill_parent">  
  8.   
  9.    <TextView android:id="@+id/myText" android:layout_width="fill_parent"  
  10.   
  11.       android:layout_height="wrap_content" android:text="@string/hello" />  
  12.   
  13.    <Button android:id="@+id/myButton" android:layout_width="fill_parent"  
  14.   
  15.       android:layout_height="wrap_content" />  
  16.   
  17. </LinearLayout>  
  18.   
  19.    


回到前面在onCreate方法里

可以通过findViewById()方法得到每个控件,这个方法返回的是一个View对象所以我们要向下强转成所要的控件类

 

[java] view plaincopyprint?
  1. package com.jiahui.activity;  
  2.   
  3.    
  4.   
  5. import android.app.Activity;  
  6.   
  7. import android.os.Bundle;  
  8.   
  9. import android.widget.Button;  
  10.   
  11. import android.widget.TextView;  
  12.   
  13.    
  14.   
  15. public class MyActivity01Activity extends Activity {  
  16.   
  17.          
  18.   
  19.        public void onCreate(Bundle savedInstanceState) {  
  20.   
  21.    
  22.   
  23.               super.onCreate(savedInstanceState);  
  24.   
  25.    
  26.   
  27.               setContentView(R.layout.main);// 设置这个Activtiy使用的布局文件  
  28.   
  29.    
  30.   
  31.               TextView myTextView = (TextView) findViewById(R.id.myText);  
  32.   
  33.               Button myButton = (Button) findViewById(R.id.myButton);  
  34.   
  35.    
  36.   
  37.               myTextView.setText("我的第一个TextView");  
  38.   
  39.               myButton.setText("我的第一个按钮");  
  40.   
  41.    
  42.   
  43.        }  
  44.   
  45. }  
  46.   
  47.    


运行结果:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/469677.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python3 numpy中矩阵np.dot(a,b)乘法运算

python np.dot(a,b)乘法运算 首先我们知道矩阵运算是不满足交换律的&#xff0c;np.dot(a, b)与np.dot(b, a)是不一样的 另外np.dot(a,b)和a.dot(b)果是一样的 1.numpy中数组&#xff08;矩阵&#xff09;相乘np.dot(a,b)运算&#xff1a; 对于两数组a和b &#xff1a; 示例…

MySQL数据库优化的八种方式(经典必看)

引言&#xff1a; 关于数据库优化&#xff0c;网上有不少资料和方法&#xff0c;但是不少质量参差不齐&#xff0c;有些总结的不够到位&#xff0c;内容冗杂 偶尔发现了这篇文章&#xff0c;总结得很经典&#xff0c;文章流量也很大&#xff0c;所以拿到自己的总结文集中&#…

class_create和class_device_create

//主要是在/sys/class/ 下创建一个 “name”的文件夹 &#xff01;从linux内核2.6的某个版本之后&#xff0c;devfs不复存在&#xff0c;udev成为devfs的替代。相比devfs&#xff0c;udev有很多优势&#xff0c;在此就不罗嗦了&#xff0c;提醒一点&#xff0c;udev是应用层的东…

OSError: [Errno 22] Invalid argument:**

OSError: [Errno 22] Invalid argument: 在使用open打开文件时&#xff0c;出现报错 OSError: [Errno 22] Invalid argument: H:\\GitRepository\neural-networks-and-deep-learning\\data\\mnist_expanded.pkl.gzpython3 可以将 \ 换为 / &#xff0c;或者换成 \ 但是最简单…

阅读英文论文的方法总结(三遍法)

1.title 2.abstract 3.introduction 4.method 5.experiments 6.conclusion 第一遍&#xff1a;标题、摘要、结论&#xff0c;看是否自己研究的相关&#xff0c;看完之后可以看部分实验和方法里的关键图和表&#xff0c;这样可以花费十几分钟时间了解到论文是否适合你的研究方向…

ML Backpropagation算法的计算过程举例

Backpropagation计算过程举例 初始权重(initialize weights)是随机产生的(如-1~1之间) 初始化可以选择均值为0&#xff0c;方差为1/n_in的正态分布&#xff0c;n_in为输入的实例个数&#xff0c;Python中可使用np.random.normal函数来初始化权重&#xff1a; np.random.normal…

Python基础知识__字符串

字符串介绍 一. 认识字符串 字符串是 Python 中最常用的数据类型。我们一般使用引号来创建字符串。创建字符串很简单&#xff0c;只要为变量分配一个值即可。 a hello world b "abcdefg" print(type(a)) print(type(b)) 注意&#xff1a;控制台显示结果为<cl…

Android uevent

Android很多事件都是通过uevent跟kernel来异步通信的。其中类UEventObserver是核心。 UEventObserver接收kernel的uevent信息的抽象类。 1、server层代码 1)battery server: frameworks/base/services/java/com/android/server/SystemServer.java frameworks/base/services/j…

ssh 命令行通过私钥登录其它设备

ssh -i root(私钥文件) rootIP (被访问的服务器IP) 这里备份一下了 转载于:https://www.cnblogs.com/zhja/p/6211195.html

node : 无法将“node”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。

VScode Code Runner无法运行JavaScript&#xff08;js文件&#xff09; 原因&#xff1a; 未安装Node.js 解决方法&#xff1a; https://nodejs.org/en/ 下载Nodejs&#xff0c;安装完之后&#xff0c;重启VScode&#xff0c;会自动配置&#xff0c;运行即可在终端看到结果。

智慧交通day03-车道线检测实现01:车道线检测概述

项目简介 汽车的日益普及在给人们带来极大便利的同时&#xff0c;也导致了拥堵的交通路况&#xff0c;以及更为频发的交通事故。而自动驾驶技术的出现可以有效的缓解了此类问题&#xff0c;减少交通事故&#xff0c;提升出行效率。 国内外检测车道线的方法主要有两类&#xf…

vsphere平台windows虚拟机克隆的小插曲(无法登陆系统)

问题&#xff1a; 1、克隆完windows虚拟化后输入法乱码。 2、开启远程的情况下远程登录输入正确的密码也无法登录。 解决&#xff1a; 1、更改管理员用户密码&#xff08;不输入原win7密码更改win7密码&#xff09;。 2、重新启用管理员。 3、重启系统 不输入当前密码改win密码…

JavaScript 打印结果时多出一个undefined/出现undefined

JavaScript 打印结果时多出一个undefined/出现undefined 1.检查是否变量未初始化. 如下图&#xff0c;未初始化值就拿来使用&#xff0c;结果会出现undefined. var newStr;修正方法为:定义的同时给变量赋一个值&#xff0c;如不需要值&#xff0c;可以赋空值""&…

智慧交通day03-车道线检测实现02-1:相机校正

1. 相机标定的意义 我们所处的世界是三维的&#xff0c;而照片是二维的&#xff0c;我们可以把相机认为是一个函数&#xff0c;输入量是一个场景&#xff0c;输出量是一幅灰度图。这个从三维到二维的过程的函数是不可逆的。 相机标定的一个目的是要找一个合适的数学模型&#…

把输入字符的小写转换成大写并输出

#include <stdio.h> #include <stdlib.h> #include <string.h> /******************************* *把小写字母转成大写字母 ********************************/ int main(void) { char *srcNULL;unsigned char i0;char *new_1NULL;char *new_2NULL;char *dN…

关于一些html和css2的知识点

前端开大语言三种:1)HTML(hypertext markup language)结构2)css(Cascading Style Sheets)样式 3)js(Javascript)行为 脚本语言 属性:属性值 用来描述标签的一些特征的关键词 关于css样式的引入方式 一共有三种 1)行间样式表(写在标签的开始标记上) 2)内部样式 写在<styl…

nginx服务无法启动,启动时报错1067以外终止

解决方法&#xff1a; 首先cmd命令打开&#xff0c;输入nginx -t测试配置文件是否能运行OK&#xff0c;如果报错bind() to 0.0.0.0:80 failed (10013: An attempt was made to access a …) 则说明配置文件中的端口0.0.0.0:80被占用 可使用下面两种方法解决&#xff1a; cmd输…

智慧交通day03-车道线检测实现02-2:张氏标定法+双目标定

6.张氏标定法 张氏标定法是张正友博士在1999年发表在国际顶级会议ICCV上的论文《Flexible Camera Calibration By Viewing a Plane From Unknown Orientations》中&#xff0c;提出的一种利用平面棋盘格进行相机标定的实用方法。 该方法介于传统标定法和自标定法之间&#xff…

指针的基本操作(10.1 Basic Pointer Operations)

[This section corresponds to K&R Sec. 5.1] The first things to do with pointers are to declare a pointer variable, set it to point somewhere, and finally manipulate the value that it points to. A simple pointer declaration looks like this: 对指针的第…