在学Android,摘自《第一行代码——Android》

布局管理

  通过xml文件进行布局管理。

  android:id="@+id/button_1" 为当前的元素定义一个唯一标识符,@+id用于定义,@id用于引用;android:text 为其上内容;android:layout_width和android_height控制其宽度和高度

setContentView()

  加载布局,传入一个布局文件的id。如setContentView(R.layout.first_layout)

在AndroidManifest文件中注册

  活动的注册声明要放在<application>标签内,通过<activity>标签来对活动进行注册的。使用android:name来指定具体注册哪一个活动,使用android:label指定活动中标题栏的内容。若要让某活动作为程序的主活动,则需加入<action android:name="android.intent.action.MAIN" />和<category android:name="android.intent.category.LAUNCHER" />。

  没有主活动的程序一般作为第三方服务供其他的应用在内部进行调用。

隐藏标题栏

  在setContentView()之前加入requestWindowFeature(Window.FEATURE_NO_TITLE)

按钮的设置

  Button button1 = (Button) findViewById(R.id.button_1);  //通过定义好的R.id.button_1生成Button对象。findViewById()返回View对象

活动中的菜单

  建立./res/menu,在其下设置Android XML File文件。通过<item>标签创建菜单项(android:id给菜单项指定一个唯一标识符,android:title给菜单项指定一个名称)

  通过getMenuInflater().inflate(a,b)给当前活动创建菜单,第一个参数用于指定通过哪一个资源文件创建菜单,第二个参数用于指定我们的菜单项将添加到哪一个Menu对象当中,返回true(public boolean onCreateOptionsMenu(Menu)),表示允许创建的菜单显示出来。

销毁活动

  finish(),效果和按下Back键相同

使用Intent在活动之间穿梭

  Intent的用法分为显式Intent和隐式Intent。

  显式:第一个参数为上下文,第二个参数为目标活动

  Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
  startActivity(intent);

  隐式:指定一系列更为抽象的action(指明当前活动可以响应的action)和category(附加信息)等信息,交由系统去分析这个Intent,并帮我们找出合适的活动去启动。通过在(AndroidManifest中)<activity>标签下配置<intent-filter>的内容,可以指定当前活动能够响应的action和category。只有<action>和<category>中的内容同时能够匹配上Intent中指定的action和category时,这个活动才能响应该Intent。每个Intent中只能指定一个action,但能指定多个category。

  AndroidManifest.xml

  <activity android:name=".SecondActivity" >
  <intent-filter>
  <action android:name="com.example.activitytest.ACTION_START" />
  <category android:name="android.intent.category.DEFAULT />
  </intent-filter>
  </activity>

  FirstActivity.java  

  Intent intent = new Intent("com.example.activitytest.ACTION_START");
  startActivity(intent);

  使用隐式Intent,可以启动其他程序的活动

活动之间传递数据

  向下传递数据:父活动intent.putExtra(,),第一个参数为键,第二个参数为值。

        子活动:Intent intent = getIntent();  //获取到用于启动该活动的Intent

            String str = intent.getStringExtra();  //参数为键

  向上传递数据:父活动startActivityForResult(intent,  )第二个参数为请求码

         子活动: 调用setResult(,)第一个参数用于向上一个活动返回处理结果,一般只使用RESULT_OK和RESULT_CANCELED,第二个参数传递数据

          因此在父活动中要加入onActivityResult()得到返回的数据

          当用back返回时,可以重写onBackPressed(){}

intent.setFlags() http://blog.csdn.net/berber78/article/details/7278408

从一个Activity(a)到另一个Activity(b),且需要第二个Activity返回结果时,要到:

  a中,startActivityForResult(Intent intent, Int requestCode)

  b中,setResult(int resultCode, Intent intent)

  a中,onActivityResult(Int requestCode, Int resultCode, Intent intent)

Android入门的更多相关文章

  1. Android入门(十二)SQLite事务、升级数据库

    原文链接:http://www.orlion.ga/610/ 一.事务 SQLite支持事务,看一下Android如何使用事务:比如 Book表中的数据都已经很老了,现在准备全部废弃掉替换成新数据,可 ...

  2. 【转】Xamarin.Android 入门之:Xamarin+vs2015 环境搭建

    Xamarin.Android 入门之:Xamarin+vs2015 环境搭建   一.前言 此篇博客主要写了如何使用搭建xamarin开发的环境,防止我自己万一哪天电脑重装系统了,可以直接看这篇博客 ...

  3. android 入门 006(sqlite增删改查)

    android 入门 006(sqlite增删改查) package cn.rfvip.feb_14_2_sqlite; import android.content.Context; import ...

  4. android 入门 005(登录记住)

    android 入门 005(登录记住) <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android ...

  5. Android入门:绑定本地服务

    一.绑定服务介绍   前面文章中讲过一般的通过startService开启的服务,当访问者关闭时,服务仍然存在: 但是如果存在这样一种情况:访问者需要与服务进行通信,则我们需要将访问者与服务进行绑定: ...

  6. Android入门视频推荐

      marschen老师的Android入门视频推荐网址: 1.Android应用程序开发视频教程(重制版)第一季 2.Android应用开发视频教程(重制版)第二季 2.marschen老师的个人微 ...

  7. Android入门教程之我见

    真正的从安卓入门学习到实际工作也差不多一年时间了,也做了几个项目.在这期间经历了一开始学习Android的基本知识后仍旧无从下手,不知道如何开始开发一个app,到现在也开始学会注意Android架构的 ...

  8. 小猪的Android入门之路 Day 3 - part 3

    小猪的Android入门之路 Day 3 - part 3 各种UI组件的学习 Part 3 本节引言: 在前面两个部分中我们对Android中一些比較经常使用的基本组件进行了一个了解, part 1 ...

  9. Android入门1:使用VideoView和MediController播放视频

    最近在搞Android,入门曲线还是挺陡峭的,主要还是自己对Java的理解不够深入.前后学习了几天,把最近学习到的一些知识点总结归纳一下,正所谓温故而知新. 目前想搞一个禁播视频站,主要内容都是一些大 ...

  10. 小猪的Android入门之路 Day 7 part 2

    小猪的Android入门之路 Day 7 part 2 Android的数据存储与訪问之--SharedPreferences(保存偏好參数) ---转载请注明出处:coder-pig 本节引言: 在 ...

随机推荐

  1. mysql备份还原数据库

    1.备份数据库 mysqldump -u root -p test>/home/victor/test.sql 说明:如果提示找不到mysqldump命令,先用一条find命令查找mysqldu ...

  2. sqlite 报错:database is locked

    在sqlite批量添加数据时,报错:database is locked. 解决办法:将db路径由相对路径设置为绝对路径.

  3. unity3d c#调用控件属性

    GUIText控件wenzi text 属性值 GameObject.Find("wenzi").guiText.text="修改内容"; 把你要获取的变量权限 ...

  4. 48. Remove Duplicates from Sorted List && Remove Duplicates from Sorted List II

    Remove Duplicates from Sorted List Given a sorted linked list, delete all duplicates such that each ...

  5. 在后台 .cs 中执行前台的js 函数

    <script type="text/javascript" language="javascript"> <!-- function ope ...

  6. OKR——Objectives and Key Results

    1.OKR天生就有两个典型特征: 1)在精不在多——因为它是用来明确工作重心的(set one's priorities): 2)全体公开.透明——当你能够看到你的同级(peers).小老板(直接上级 ...

  7. 关于HTML(JSP)页面的缓存设置 -- cache-control

    我在项目中遇到这么一个问题,当用户登录了系统后,进入并copy下系统某个页面的link,然后关闭浏览器,重新打开浏览器,把刚才复制好的link paste到浏览器的地址栏去,直接enter,发现浏览器 ...

  8. NHibernate系列文章十二:Load/Get方法

    摘要 NHibernate提供两个方法按主键值查找对象:Load/Get. 1. Load/Get方法的区别 Load: Load方法可以对查询进行优化. Load方法实际得到一proxy对象,并不立 ...

  9. jquery点击添加样式,再点击取出样式

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...

  10. MC的一些具体的应用的例子的总结

    任何东西,都有其适用的场景,在合适的场景下,才能发挥好更大的作用. 对于memcached,使用内存来存取数据,一般情况下,速度比直接从数据库和文件系统读取要快的多. memcached的最常用的场景 ...