Android——Activity初步(二)

news2024/12/23 13:58:16

说明:

Android这个系列中使用的开发工具为:Eclipse中配置ADT插件。

 

 

 

<LinearLayout – 表示使用的是线性布局管理器xmlns:android=http://schemas.android.com/apk/res/android—引用Android
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"—表示宽度为全屏
    android:layout_height="match_parent"—表示高低为全屏
    android:orientation="vertical" >--表示此布局下的组件以垂直的方式码放

    <TextView—定义一个文本显示组件
        android:layout_width="wrap_content"—-此组件宽度为包裹
        android:layout_height="wrap_content"—此组件的高度也是为包裹
        android:text="这是我的第一个程序" />--此组件显示的内容

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World" />

</LinearLayout>

 以上就是我们的布局管理器。

观察Activity程序,我们在开发这个程序的时候,对于Activity程序并没有做修改

 

package com.example.myfirstproject;

import android.app.Activity;
import android.os.Bundle;

public class MyFirstActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);--调用父类的onCreate()方法
        setContentView(R.layout.activity_my_first);--设置显示的组件,这个内容是通过R.java 文件中取得的,R.java文件我们称为注册文件,不需要用户修改,是自动生成的。
    }
}

大家发现,我们在Eclipse中建立的Android程序有非常多的文件夹,那么现在不同的文件夹中放的内容又是哪些呢?

在我们的布局文件中,直接将字符串内容写在里面,这样写法是不准确的,在以后的开发中,我们的字符串都需要写在strings.xml中,这是一个规则,必须遵守,当然,在后续的博客中,可能会为了简便,直接写在布局文件中。 

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="app_name">第一个Android程序</string>
    <string name="action_settings">Settings</string>
    <string name="hello_world">Hello world!</string>
    <string name="textcontent">这是我的第一个程序</string>
    <string name="helloworld">Hello World</string>
</resources>

对于这个资源文件,有一个编写规则,就是类似于我们Map集合,是一个键值对应的关系,键是不能重复的。

    <TextView
        android:id="@+id/mytext"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/textcontent" />--通过键 显示值

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/helloworld" />

AndroidManifest.xml:是我们Android应用程序的核心配置文件

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.myfirstproject"
    android:versionCode="1"—我们这个应用的版本
    android:versionName="1.0" >--可以让用户看到的版本
    <uses-sdk
        android:minSdkVersion="10" – 这边是SDK的最低的版本
        android:targetSdkVersion="10" />--开发此应用所使用的版本
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"—程序安装之后的图标
        android:label="@string/app_name"—程序安装之后的名称
        android:theme="@style/AppTheme" >-程序所使用的主题
        <activity—配置Activity程序,以后所有的Activity程序都需要在此文件中进行配置
            android:name="com.example.myfirstproject.MyFirstActivity"
            android:label="@string/app_name" >--此Activity的名称
            <intent-filter>--配置了一个过滤器
                <action android:name="android.intent.action.MAIN" />--配置为主Activity,表示此应用已开启,就启动此Activity

                <category android:name="android.intent.category.LAUNCHER" />--配置
            </intent-filter>
        </activity>
    </application>
</manifest>

当然除了以上的配置之外,以后我们在此文件中配置比较多的就是配置权限。

继续来完成我们程序。其实我们的一个组件就是一个对象,那么对象肯定有类型,比如我们这个TextView就是一个类,此类对象表示的是一个文本的显示组件。注意,所有的组件都必须配置在Activity程序中,那么我们也可以在Activity程序中取得这些组件。

public class MyFirstActivity extends Activity {
	private TextView mytext1 = null;
	private TextView mytext2 = null;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_my_first);
        this.mytext1 = (TextView) super.findViewById(R.id.mytext1);//取得布局中所定义的组件
        this.mytext2 = (TextView) super.findViewById(R.id.mytext2);
        		
        this.mytext1.setText("程序之美");//重新设置文本显示内容
        this.mytext2.setText("Android is useful");
    }
}

除了取得布局文件中组件和设置组件内容之外呢,我们还可以在Activity程序中定义一个新的组件。

public class MyFirstActivity extends Activity {
	private TextView mytext1 = null;
	private TextView mytext2 = null;
	private LinearLayout mylayout = null;
	private Button but = null;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_my_first);
        this.mytext1 = (TextView) super.findViewById(R.id.mytext1);//取得布局中所定义的组件
        this.mytext2 = (TextView) super.findViewById(R.id.mytext2);
        this.mylayout = (LinearLayout) super.findViewById(R.id.mylayout);
        this.mytext1.setText("程序之美");//重新设置文本显示内容
        this.mytext2.setText("Android is useful");
        this.but = new Button(this);//实例化按钮组件
        this.but.setText("你点我呀");//设置按钮组件内容
        this.mylayout.addView(this.but);//将按钮组件放置在布局管理器中
    }

以上的程序我们都使用了布局文件,当然也可以不使用布局文件。

public class MyFirstActivity extends Activity {
	private LinearLayout mylayout = null;
	private Button but = null;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        this.mylayout = new LinearLayout(this);
        setContentView(this.mylayout);
        this.but = new Button(this);//实例化按钮组件
        this.but.setText("你点我呀");//设置按钮组件内容
        this.mylayout.addView(this.but);//将按钮组件放置在布局管理器中
    }
}

在的开发中,虽然可以不使用布局文件,但上班中正式的开发我们肯定是要使用布局文件的。

小结:

1、Android项目由若干个Activity程序所组成,每一个Activity都是一个Java类;

2、一个Android项目中所有用到的资源都保存在res文件夹之中;

3、Android中的组件需要在布局管理器中进行配置,之后在Activity程序中可以使用findViewById()方法查找并进行控制;

4、在布局管理器中定义的每一个组件都有其对应的操作类,用户可以直接实例化这些类的对象进行组件的定义显示;

5、标准的Android项目,所有的文字显示信息应该保存在strings.xml文件中保存。

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

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

相关文章

U盘打不开?恢复u盘,3招解决!

案例&#xff1a;u盘插入电脑后一点反应都没有&#xff0c;这是为什么呢&#xff1f;u盘打不开怎么办&#xff1f; 【我将u盘插入电脑后u盘显示无法打开&#xff0c;为什么会出现这种情况呢&#xff1f;遇到u盘打不开的情况应该怎么办呢&#xff1f;】 经常使用u盘存储文件的朋…

想升职加薪?网络安全行业推荐考取的证书

推荐大家考取CISP证书&#xff0c;CISP认证是业内公认的国内信息安全领域最权威的国家级认证。 对于在校大学生&#xff0c;可以考取NISP一级和二级&#xff0c;然后免费置换CISP&#xff1b; 对于安全领域相关从业者&#xff0c;直接考取CISP证书&#xff0c;CISP认证还有许…

大麦生成链接 大麦一键生成订单截图

一键生成购票链接 一键生成订单截图 下载程序&#xff1a;https://pan.baidu.com/s/16lN3gvRIZm7pqhvVMYYecQ?pwd6zw3

springboot的目录结构作用

springboot单体项目结构大概如下。 代码都在src/main下&#xff0c; java是后端代码 java下最基本的包 dao(mapper) entity(model) service controller 其他的包根据项目需求扩展。 resources下是配置文件。 如果不是前后端分离&#xff0c;resources下放的是静态文件…

06【HTML5新增标签】

文章目录 六、HTML5新增标签6.1 布局标签6.1.1 常规布局标签6.1.2 控件标签1&#xff09;meter标签2&#xff09;progress标签3&#xff09;details标签4&#xff09;dialog标签 6.1.3 文本标签1&#xff09;ruby标签2&#xff09;mark标签 6.2 表单标签6.2.1 H5新增input类型6…

Hive序列化和反序列化

序列化和反序列化 文件读取/解析的方式 create table t1( id int, name string ) row format delimited fields terminated by , ;0,7369,SMITH,CLERK,7902,1980-12-17,800,null,20从文件里进行查询时&#xff0c;会不会在内存里产生hive的相关对象啊select * from student;…

Goland 包导入正常,但是无法解析函数和成员属性,编译不报错

这段时间 Goland 突然出现了一个毛病&#xff0c;每次 go get 依赖后&#xff0c;虽然依赖拉下来了&#xff0c;但是代码里使用了这个 module 的地方无法引用出他的成员和属性&#xff0c;大片的标红&#xff0c;都提示「Unresolved reference xxxxx」&#xff0c;但是只要把项…

6月29日Mendix北京见面会,抓紧时间报名!

喜欢Mendix的小伙伴们&#xff0c;好消息来啦&#x1f4e2;&#xff01; 6月29日&#xff0c;Mendix北京社区活动将在这个炎热的夏日中隆重推出&#xff0c;一起来参加吧&#xff01; 听说这次meet-up的嘉宾们都在用心准备内容中&#xff0c;这次不仅有MX首席架构师Matt、懂中…

Spring配置动态数据库

前言 本文主要介绍使用spring boot 配置多个数据库&#xff0c;即动态数据库 开始搭建 首先创建一个SpringWeb项目——dynamicdb(spring-boot2.5.7) 然后引入相关依赖lombok、swagger2、mybatis-plus&#xff0c;如下&#xff1a; <?xml version"1.0" encoding&q…

【编码魔法师系列_六大原则1】单一职责原则(Single Responsibility Principle)

学会设计模式&#xff0c;你就可以像拥有魔法一样&#xff0c;在开发过程中解决一些复杂的问题。设计模式是由经验丰富的开发者们&#xff08;GoF&#xff09;凝聚出来的最佳实践&#xff0c;可以提高代码的可读性、可维护性和可重用性&#xff0c;从而让我们的开发效率更高。通…

ABAP: NUMBER_GET_NEXT用法

NUMBER_GET_NEXT 是用来自动获取编号的方法。 1、SNRO : 创建编号范围对象&#xff0c;例如&#xff0c;ZTEST_001 点击间隔编辑&#xff0c;可以设置编号范围&#xff0c;如下图所示。 2、SE11: 自定义设置编号长度域&#xff0c;例如&#xff0c;ZTEST_NUM 3、程序里面调用N…

自动驾驶——基于五次多项式螺旋线方程的换道曲线规划

1.BackGround 已知&#xff1a;换道初始纵坐标y0&#xff08;横向距离&#xff09;&#xff0c;换道初始航向角tan0&#xff0c;换道时间t&#xff0c;换道结束纵坐标yf&#xff0c;换道结束航向角tanf&#xff0c;车速VehSpd&#xff0c;曲线中点曲率q且曲率变化率为0。求解期…

python:tkinter图形界面通讯录+txt文本存储数据

1 实验目的与要求 实验目的&#xff1a;设计一个实用的小型通讯录程序 实验要求&#xff1a;最后的通讯录要写入文件中保存起来 2 实验内容 本次实验内容如下&#xff1a; 设计一个实用的小型通讯录程序&#xff0c;具有添加&#xff0c;查询和删除功能。由姓名&#xff0…

jmeter008:结婚fiddler查看结果

如果通过jmeter的(察看结果树)查看响应数据不完整时&#xff0c; 可以结合fiddler来查看请求数据&#xff0c; 方法如下&#xff1a; 在请求的(高级)填写本地ip&#xff0c; 端口号&#xff0c;打开fiddler&#xff0c;运行jmeter请求即可抓包

【新版】系统架构设计师 - 计算机网络

个人总结&#xff0c;仅供参考&#xff0c;欢迎加好友一起讨论 架构 - 计算机网络 考点摘要 TCP/IP协议族&#xff08;★★★★&#xff09; 网路规划与设计&#xff08;★★★★&#xff09; 组网技术&#xff08;★&#xff09; 网络存储&#xff08;★&#xff09; IPv…

LabVIEW开发经济高效的多轴运动控制

LabVIEW开发经济高效的多轴运动控制 使用PC并行端口到驱动器电路接口技术开发的&#xff0c;该技术消除了在PC内部安装昂贵的插入式运动控制板的要求。为所介绍的系统开发了PC到电机接口和驱动器电路板。该系统能够使用直流电机控制四轴运动或使用步进电机控制两轴运动。 运动…

chatgpt赋能Python-python怎么在程序环境中保存

介绍 Python是一个广泛应用于各种领域的高级编程语言&#xff0c;它具有易于学习、可读性强、支持多种编程范式、强大且丰富的库、较高的运行速度等众多优点。无论是数据科学、人工智能、Web开发、自动化测试、游戏开发等领域&#xff0c;Python都是优秀的选择。 然而&#x…

GPDB中Latch等待与唤醒实现机制

GPDB中Latch等待与唤醒实现机制 GreenPlum/PostgreSQL中有很多Latch以帮助多进程以及主线程与从线程之间协作。那么Latch是如何实现的呢&#xff1f;Latch可以在多进程之间以及主线程和从线程之间实现等待与唤醒&#xff0c;WaitEventSet是实现这项功能的关键结构。本文我们聊聊…

基于SpringBoot+Vue的平时成绩管理系统

✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取项目下载方式&#x1f345; 一、项目背景介绍&#xff1a; 在现代教育环境中&…

2023全新微信公众号无限回调系统源码 亲测可用

2023年微信公众号无限回调全新升级&#xff0c;无限回调系统功能更强大&#xff0c;现已对接易支付&#xff0c;支持用户自助充值、购买授权、更换授权和续费授权。此次升级还增加了多项实用性功能&#xff0c;为公众号运营者提供更好的服务和支持。