安卓开发创建活动,布局,添加按钮,she使用Toast,设菜单,使菜单相关联等操作
---恢复内容开始---
创建一个新活动在app/src/main/java/com.example.activitytest ,然后右击com.example.activitytest包→New→Activity→Empty Activity
勾选Generate Layout File表示会自动为FirstActivity创建一个对应的布局文件,勾选Launcher Activity表示会自动将FirstActivity设置为当前项目的主活动
新建布局文件右击app/src/main/res目录→New→Directory,会弹出一个新建目录的窗口,这里先创建一个名为 layout的目录。然后对着layout目录右键→New→Layout resource file,又会弹出一个新建布局资源文件的窗口,点击OK完成创建后,就会出现一个xml文件,会看到布局编辑器。
想在布局中添加一个按钮,可将代码改成如下所示
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:id="@+id/button_1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Button 1"
/>
</LinearLayout>
分析:android:id 是给当前的 元素定义一个唯一标识符,之后可以在代码中对这个元素进行操作
android:layout_width 指定了当前 元素的宽度,这里使用match_parent 表示让当前元素和父元素一样 宽。android:layout_height 指定了当前元素的高度,这里使用wrap_content 表示当前 元素的高度只要能刚好包含里面的内容就行
在活动中加载布局只需要在activity文件中oncreate()方法中添加setContentView(R.layout.first_layout);即可。(参数是传入一个布局文件的ID)
所有的活动都需要在AndroidManifest.xml注册后才能生效(如果使用Android studio会自动帮你注册)
活动的注册声明要放在<application> 标签内,这里是通过<activity> 标签来 对活动进行注册的。
eg:<activity android:name=".FirstActivity"></activity>
如果想将该活动设为主活动,则只需在<activity> 标签的内部加入<intent-filter> 标签,并 在这个标签里添加<action android:name="android.intent.action.MAIN"/> 和 <category android: name="android.intent.category.LAUNCHER" /> 这两句声明即可。
我们还可以使用android:label指定活动中标题栏的内容,其中给主活动指定的label不仅会成为标 题栏中的内容,还会成为启动器(Launcher)中应用程序显示的名称。
eg: android:label="This is FirstActivity">
在活动中使用菜单:
首先在res目录下新建一个menu文件夹,右击res目录→New→Directory,输入文件夹名menu,点 击OK。接着在这个文件夹下再新建一个名叫main的菜单文件,右击menu文件夹→New→Menu resource file
文件名输入main,点击OK完成创建.
想要设菜单项可以用Item标签,并通过android:id 给这个菜单项指定一个唯一的标识符,通过android:title 给这个菜单项指定 一个名称。
eg:<item
android:id="@+id/add_item"
android:title="Add"/>
接着重新回到FirstActivity中来重写onCreateOptionsMenu() 方法,重写方法可以使用Ctrl + O快捷键
编写如下代码:
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu); return true;
}
在FirstActivity中重写onOptionsItemSelected()方法:
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.add_item:
Toast.makeText(this, "You clicked Add", Toast.LENGTH_SHORT).show();
break;
case R.id.remove_item:
Toast.makeText(this, "You clicked Remove", Toast.LENGTH_SHORT).show();
break;
default:
}
return true;
}
销毁一个活动可以直接改变监听器中的代码,将onClick()方法中只放入finish()方法即可。
在打开程序后我们都会自动进入主活动页面,如果想要去别的活动页面,我们得引入一个新的概念:Intent
Intent是Android程序中各组件之间进行交互的一种重要方式,它不仅可以指明当前组件想要执行的动作,还可以在不同组件之间传递数据。Intent一般可被用于启动活动、启动服务以及发送广 播等场景
Intent大致可以分为两种:显式Intent 和隐式Intent
显式Intent:Intent有多个构造函数的重载,其中一个是Intent(Context packageContext, Class<?> cls) 。这个构造函数接收两个参数,第一个参数Context 要求提供一个启动活动的上下文, 第二个参数Class 则是指定想要启动的目标活动,通过这个构造函数就可以构建出Intent 的“意图”。然后我们应该怎么使用这个Intent呢?Activity类中提供了一个startActivity() 方 法,这个方法是专门用于启动活动的,它接收一个Intent 参数,这里我们将构建好的Intent传 入startActivity() 方法就可以启动目标活动了。
隐式Intent:它并不明确指出我们想要启动哪一个活动,而是指 定了一系列更为抽象的action 和category 等信息,然后交由系统去分析这个Intent,并帮我们找出合适的活动去启动。
合适的活动简单来说就是可以响应我们这个隐式Intent的活动.
我们可以通过在<activity> 标签下配置<intent-filter> 的内容,指定当前活动能够响应的 action 和category
---恢复内容结束---
安卓开发创建活动,布局,添加按钮,she使用Toast,设菜单,使菜单相关联等操作的更多相关文章
- android安卓开发基础小笔记,添加按钮事件,打开新窗体,窗体传值,回传
给一个按钮添加onclick事件 //获取按钮对象 Button Aiyo = (Button)findViewById(R.id.button1); Aiyo.setOnClickListener( ...
- 【Android】安卓开发中的布局与事件
[Android]安卓开发中的布局与事件 1.Android Studio下载配置 非常简单的百度然后点击下载安装就好了.注意的是,本来我是打算使用评价还不错的Genymotion这个软件来充当虚拟机 ...
- Delphi组件开发-在窗体标题栏添加按钮(使用MakeObjectInstance(NewWndProc),并处理好多消息)
这是一个在窗体标题栏添加自定义按钮的组件(TTitleBarButton)开发实例,标题栏按钮组件TTitleBarButton以TComponent为直接继承对象,它是一个可以在窗体标题栏上显示按钮 ...
- 安卓开发06:布局-线性布局 LinearLayout
LinearLayout把视图组织成一行或一列.子视图能被安排成垂直的或水平的.线性布局是非常常用的一种布局方式. 请看一个布局例子: <LinearLayout xmlns:android=& ...
- Android安卓开发-记账本布局
账单页面布局统计页面布局我的页面布局主页面加号记账页面布局.点击记账页面记账类别布局点击收入页面收入类别布局统计页面支出布局统计页面收入布局查询页面布局数据库设计字段一,支出id和收入id分配字段二, ...
- 安卓开发:初步了解布局文件layout
了解完项目的目录结构,主要文件的作用之后. 了解完各常量文件的定义和使用之后,接下来的重头戏肯定是布局文件layout. 果然,网上关于“安卓布局文件layout”的各种介绍.解析.深入分析,等等资料 ...
- eclipse安装、汉化、搭建安卓开发环境
1.eclipse与jdk的位数(32bit or 64bit )要对应,否则会提示Failed to load JNI shared library.提示这一种错误据说还有另外一种原因就是Path路 ...
- .Net程序员快速学习安卓开发-布局和点击事件的写法
关注今日头条-做全栈攻城狮,学代码也要读书,爱全栈,更爱生活.提供程序员技术及生活指导干货. 本系列课程 致力于老手程序员可以快速入门学习安卓开发.系统全面的从一个.Net程序员的角度一步步学习总结安 ...
- 初学安卓开发随笔之 Menu、toast 用法、活动的四种启动模式 以及 一个方便的Base活动类使用方法
Toast toast 是安卓系统的一种非常棒的提醒方式 首先定义一个弹出Toast的触发点,比如可以是按钮之类 其中 Toast.LENGTH_SHORT是指显示时长 还有一个内置变量为Toast. ...
随机推荐
- talend工具中往oracle插数据报ORA-01461: can bind a LONG value only for insert into a LONG colum
今天使用talend往oracle插数据报ORA-01461: can bind a LONG value only for insert into a LONG column 数据源是mysql,开 ...
- AD域详解
很详细,赞!
- A Simple Nim (SG打表找规律)
题意:有n堆石子,每次可以将其中一堆分为数量不为0的3堆,或者从其中一堆中拿走若干个,最终拿完的那个人赢. 思路:直接暴力SG状态,然后找出其中的规律,异或一下每一堆的状态就可以了. #include ...
- 【SparkStreaming学习之四】 SparkStreaming+kafka管理消费offset
环境 虚拟机:VMware 10 Linux版本:CentOS-6.5-x86_64 客户端:Xshell4 FTP:Xftp4 jdk1.8 scala-2.10.4(依赖jdk1.8) spark ...
- Spring Cloud 和 Dubbo 比较
Spring Cloud 和 Dubbo 比较
- 实验1 C语言开发环境使用和数据类型,运算符,表达式
part :验证性内容 .输出学号. #include<stdio.h> int main(void){ printf("); ; } .输入两个整数,求它们的乘积. #incl ...
- react初始
一.一些基础概念 1.框架:基于整个项目的 2.库:在某个模块中单独使用,轻量级的 在vue中,DOM的操作时DOM指令调用js 在react中,所有的DOM 渲染都是由JS完成的 组件基于视图 模块 ...
- python的oop概述
python是面向对象的语言,那么究竟什么是面向对象? 首先理解类 类:在中文中的定义,许多相同或相似事物的综合.根据这个定义,类是许多相同或相似的实物聚在一起的.譬如,人类,鸟类,花类等. 面向对象 ...
- EDK II之SMM/SMI
SMM:System Managerment Mode SMM有自己的smm core以及dispatcher(可以简单的把smm core跟dxe core看成是平行的存在),smm有自己的运行空间 ...
- webview 监听及获取cookie
https://www.cnblogs.com/pjl43/p/9866753.html https://www.jianshu.com/p/55092eb06c17 requests: https: ...