`

android开发--布局

阅读更多
Android应用开发3
使用Bundle在Activity间传递数据
从源Activity 中传递数据
//数据写入Intent
Intent openWelcomeActivityIntent=new Intent();
Bundle myBundelForName=new Bundle();
myBundelForName.putString("Key_Name",inName.getText().toString());
myBundelForName.putString("Key_Age",inAge.getText().toString());
openWelcomeActivityIntent.putExtras(myBundelForName);
openWelcomeActivityIntent.setClass(AndroidBundel.this, Welcome.class);
startActivity(openWelcomeActivityIntent);

目标Activity 中获取数据
//从Intent 中获取数据
Bundle myBundelForGetName=this.getIntent().getExtras();
String name=myBundelForGetName.getString("Key_Name");
myTextView_showName.setText("欢迎您进入:"+name);

使用Bundle在Activity间传递数据2
从源请求Activity 中通过一个Intent 把一个服务请求传到目标Activity 中
private Intent toNextIntent;//Intent 成员声明
toNextIntent=new Intent();//Intent 定义
toNextIntent.setClass(TwoActivityME3.this, SecondActivity3.class);
//设定开启的下一个Activity
startActivityForResult(toNextIntent, REQUEST_ASK);
//开启Intent 时候,把请求码同时传递

在源请求Activity 中等待Intent 返回应答结果,通过重载onActivityResult()方法
  第一个参数是你开启请求Intent时的对应请求码,可以自己定义。
  第二个参数是目标Activity返回的验证结果码
  第三个参数是目标Activity返回的Intent
目标Activity 中发送请求结果代码,连同源Activity 请求的数据一同绑定到Bundle
中通过Intent 传回源请求Activity 中
Log与DDMS(查看Log等信息)
@Override
protected void onActivityResult(int requestCode,
int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
if(requestCode==REQUEST_ASK){
if(resultCode==RESULT_CANCELED){
setTitle("Cancel****");
}else if(resultCode==RESULT_OK){
showBundle=data.getExtras();//从返回的Intent中获得Bundle
Name=showBundle.getString("myName");//从bundle中获得相应数据
text.setText("the name get from the second layout:\n"+Name);
}
}
}

backIntent=new Intent();
stringBundle=new Bundle();
stringBundle.putString("myName", Name);
backIntent.putExtras(stringBundle);
setResult(RESULT_OK, backIntent);//返回Activity结果码
finish();

Log.v("TAG", "nextPage_Activity onStart()");//设置标签来跟踪程序

Activity生命周期
Activity 状态
① 当一个Activity 在屏幕的最上层时(对堆栈的最顶端),它就是属于active 或者running 的状态
② 如果一个Activity 失去焦点(focus)但还看得到它的画面(比如:一个新的Activity 画面并不是全
屏幕或者它是一个半透明的情况),那失去焦点的Activity 则处在paused 的状态。像这个失去焦点的Activity
它还是完全活着的,并没有消失。(活着的意思是指,Activity 自己本身所有的状态及数据都还是存在的,也
跟窗口管理程序window manager 保持联系着),像这种paused 的Activity,会在一种情况下消失,那就是当
系统的内存不够用之时,系统会自动判断,八部重要的Activity 移除。
③ 如果一个Activity 被其它的Activity 完全的遮盖住时,它仍然保有全部的状态及数据,但因为它已
不再被使用者看见,所以它的画面是被隐藏起来的(画面不需要更新),当系统内存不足时,这种stop 状态
的Activity 时最先被系统考虑拿下来释放内存的。
④ 当一个Activity 处于pause 或stop 的状态时,系统可以要求Activity 结束(finish)或直接移除(kill)
它。当它需要再度呈现在使用者面前时,它必须要能完整的重新启动及回复先前的状态。
Activity 状态转换图
Android应用开发4使用Service
什么是服务(Service)
服务是运行在后台的一段代码。它可以运行在它自己的进程,也可以运行在其他应用程序的上下文
(context)里面,这取决于自身的需要。其他的组件可以绑定到一个服务(Service)上面,通过远程过程调
用(RPC)来调用这个方法。例如:媒体播放器的服务,当用户退出媒体选择用户界面,仍然希望音乐可以
继续播放,这时就是由服务(Service)来保证当用户界面关闭时音乐继续播放的。
如何使用服务
    第一种是通过调用Context.startServece()启动,调用Context.stoptService()结束,startService()可以传递参
数给Service。
    第二种方式是通过调用Context.bindService()启动,调用Context.unbindService()结束,还可以通过
ServiceConnection 访问Service。二者可以混合使用,比如说我可以先startServece()再unbindService()。
Service的生命周期
  startService()后,即使调用startService()的进程结束了,Service 仍然还存在,知道有进程调用
stoptService(),或者Service 自己自杀(stopSelf())就没法了
  bindService()后,Service 就和调用bindService()的进程同生共死,也就是说当调用bindService()的进
程死了,那么它bind 的Service 也要跟着被结束,当然期间也可以调用unbindService()让Service 结

  两种方式混合使用时,比如说你startService()了,我bindService()了,那么只有你stoptService()了而
且我也unbindService()了,这个Service 才会被结束。
进程生命周期
   Android 系统将会尝试保留那些启动了的或者时绑定了的服务进程
   如果该服务正在进程的onCreate(),onStart()或者onDestroy()这些方法中执行时,那么主进程将会成为
一个前台进程,以确保此代码不会被停止
  如果服务已经开始,那么它的主进程会就重要性而言低于所有可见的进程但高于不可见的进程,由
于只有少数几个进程是用户可见的,所以只要不是内存特别低,该服务不会停止。
  如果有多个客户端绑定了服务,只要客户端中的一个对于用户是可见的,即认为该服务可见
使用服务进行音乐播放
Manifest.xml
中的Service
定义
<service android:name=".Music">
<intent-filter>
<action android:name="com.liangshan.wuyong.START_AUDIO_SERVICE" />
<category android:name="android.intent.category.default" />
</intent-filter>
</service>

Service 子类
中的Player
public void onStart(Intent intent, int startId) {
super.onStart(intent, startId);
player = MediaPlayer.create(this, R.raw.seven_days);
player.start();
}
public void onDestroy() {
super.onDestroy();
player.stop();
}

Activity 中定
义的Intent
开启相应的
Service
引用
startService(new Intent("com.liangshan.wuyong.START_AUDIO_SERVICE"));
stopService(new Intent("com.liangshan.wuyong.START_AUDIO_SERVICE"));

AndroidUI布局
Activity
    Android 应用程序基本功能单元
    本身没有任何屏幕存在
View 和Viewgroup
    表示在Android 平台上的基本用户界面单元
Views
    android.view.View
     为指定的屏幕矩形区域存储布局和内容
     处理尺寸和布局,绘制,焦点改变,翻屏,按键、手势
     widget 基类
Viewgroups
    android.view.Viewgroup
     包含并管理下级系列的Views 和其他Viewgroup
     布局的基类
UI树状结构
    Android 中的Activity
     定义使用一个view 和iewgroup 的树状节点
    setContentView()方法
     被Activity 调用来把树状节点连接到屏幕渲染
文本TextView 输入框EditText
输入法InputMethod 活动方法MovementMethod
按钮Button 单选按钮RadioButton
复选框Checkbox 滚动视图ScrollView
LayoutParams (布局参数)
    每一个viewgroup 类使用一个继承于ViewGroup.LayoutParams 的嵌套类
     包含定义了子节点View 的尺寸和位置的属性类型
普通布局对象
FrameLayout
    最简单的布局对象
    在屏幕上故意保留的空白空间,你可以之后填充一个单独的对象
     例如:一个你要更换的图片
    所有子元素都钉到屏幕的左上角
    不能为子元素指定位置
LinearLayout
    在一个方向上(垂直或水平)对齐所有子元素
     所有子元素一个跟一个地堆放
    一个垂直列表每行将只有一个子元素(无论它们有多宽)
    一个水平列表只是一列的高度(最高子元素的高度来填充)
TableLayout
    把子元素放入到行与列中
    不显示行、列或是单元格边界线
    单元格不能横跨行,如HTML 中一样
AbsoluteLayout
    使子元素能够指明确切的X / Y 坐标显示在屏幕上
     (0,0)是左上角
     当你下移或右移时,坐标值增加
    允许元素重叠(但是不推荐)
    注意:
     一般建议不使用AbsoluteLayout 除非你有很好的理由来使用它
     因为它相当严格并且在不同的设备显示中不能很好地工作
RelativeLayout
    让子元素指定它们相对于其他元素的位置(通过ID 来指定)或相对于父布局对象
AndroidManifest.xml 中修改程序布局的Theme 主题
<?xml version="1.0" encoding="utf-8"?>
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
package="zyf.GridViewTest"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon"
android:theme="@android:style/Theme.Light"
android:label="@string/app_name" >
<activity android:name=".GridViewTest"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category
android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
<uses-sdk android:minSdkVersion="2" />
</manifest>
分享到:
评论

相关推荐

    Android开发 - 布局

    在Android开发中,布局(Layout)是构建用户界面的核心元素,它定义了应用程序屏幕上各个组件的排列方式和相互关系。本篇文章将深入探讨Android布局的相关知识点,包括布局的基本概念、类型、设计原则以及如何通过...

    Android--开发--AnderWeb-Android--开发--_packages_appsrar

    在Android应用开发中,"Launcher"是一个至关重要的组件,它扮演着用户界面和应用程序启动器的角色。`Android--开发--AnderWeb-Android--开发--_packages_apps_Launcher-4458ee4`这个文件名暗示了我们正在探讨的是一...

    Android代码-Android_Learning_Notes

    1、Android01--搭建Android开发环境 2、Android02--认识Activity 3、Android03--Context和Application 4、Android04--Android服务 5、Android05--Android服务通信 6、Android06--Android广播接收器 7、Android07--...

    Android开发-RecyclerView-AndroidStudio(三)瀑布流和几种布局

    在"Android开发-RecyclerView-AndroidStudio(三)瀑布流和几种布局"中,我们将探讨如何设置和使用这两种关键组件。 1. **瀑布流布局**(StaggeredGridLayoutManager): 瀑布流布局在电商、图片分享等应用中常见,...

    Android--开发--中国象棋源码.rar

    在Android平台上进行游戏开发是一项富有挑战性和趣味性的任务,尤其当你选择开发一款具有深厚文化底蕴的中国象棋游戏时。本文将深入探讨从标题"Android--开发--中国象棋源码.rar"和描述"Android--开发--中国象棋源码...

    Android--开发--gallery重叠特效源码+注释.rar

    在Android应用开发中,"Gallery"组件是一种早期用于展示可滚动图像集合的视图。然而,在Android 3.0(API级别...通过研究源码和注释,开发者可以学习到自定义视图、动画、布局管理等方面的知识,提升Android开发技能。

    Android项目-谁是歌手

    这个项目对于那些希望踏入Android开发领域的人来说,无疑是一个理想的起点,因为它不仅提供了实际的代码实现,还包含了详尽的注释,使得学习过程更加清晰易懂。 在Android开发中,一个完整的项目通常包括多个组件和...

    android-studio-ide-193.6626763-windows.exe

    Kotlin已成为Android开发的首选语言,4.0版本提供了更完善的Kotlin编码助手,包括智能提示、代码转换以及对Kotlin协程的全面支持,助力开发者编写更安全、更简洁的代码。 在兼容性方面,Android Studio 4.0支持...

    Android开发--华清远见android培训课件教程

    ### Android开发——华清远见Android培训课程精要 #### 一、版权与版权声明 本教程由华清远见嵌入式培训中心提供,版权所有。未经官方明确许可,不得以任何形式复制或传播此文档的任何部分。文档中的信息如有更改,...

    android-support-v7和android-support-v7-recyclerview的classes.jar

    在Android开发中,`android-support-v7`库和`android-support-v7-recyclerview`库是两个非常关键的组件,它们极大地扩展了Android SDK的功能,并帮助开发者实现向后兼容性,以便在不同版本的Android系统上运行应用。...

    Android开发--可视化UI设计DroidDraw.pdf

    ### Android开发——可视化UI设计DroidDraw #### DroidDraw:GUI可视化设计器 **DroidDraw**是一款专门针对Android开发者设计的图形用户界面(GUI)工具,它基于Java Swing技术实现,能够帮助开发者轻松构建出复杂...

    android-support-v4.jar android-support-v13.jar android-support-v7-gridlayout.jar

    在Android开发中,支持库(Support Library)是Google提供的一系列API,用于向后兼容旧版本的Android系统,同时也引入了一些新的特性和组件。这里提到的`android-support-v4.jar`、`android-support-v13.jar`和`...

    android 开发---QQ登陆页面的源码

    在Android开发中,模仿QQ登录页面是一个常见的学习实践,它能帮助开发者深入理解用户界面设计、网络请求处理以及第三方SDK的集成。这个压缩包文件"TestLogin"很可能包含了一个完整的Android Studio项目,用于演示...

    android-studio-ide-202.7486908-linux.tar.gz

    1. **JetBrains Kotlin支持**:Kotlin是Android开发的首选语言,Android Studio 4.2.2提供了强大的Kotlin支持,包括智能代码补全、语法高亮、代码重构等功能,使得Kotlin编程更加流畅。 2. **Android Gradle Plugin...

    android-studio-ide-192.6392135-windows.rar

    Android Studio是Google官方推出的一款集成开发环境(IDE),专为Android应用开发设计。它基于IntelliJ IDEA,提供了一系列强大的工具来帮助开发者高效地创建、测试和发布Android应用程序。标题中的"android-studio-...

    Android开发--实现输入密码连接WIFI

    在Android开发中,连接Wi-Fi是一项常见的功能,尤其在移动应用中,用户可能需要自动或手动连接到特定的Wi-Fi网络。本项目提供了一个简单的实现,允许用户输入密码来连接Wi-Fi,并且在成功连接后能够保存配置,以便于...

    深入浅出Android--Google手持设备应用程序设计

    总的来说,《深入浅出Android--Google手持设备应用程序设计》将带你走过Android开发的全过程,从基础到高级,从理论到实践,让你具备开发高质量Android应用的能力。书中的实例和讲解将使你更深入地理解Android系统,...

    android-studio-2021.2.1.15-windows软件包

    《Android Studio 2021.2.1.15 Windows版:一站式移动应用开发环境详解》 Android Studio,作为谷歌官方推出的Android应用程序开发集成环境(Integrated Development Environment, IDE),是全球开发者广泛使用的...

    Android Studio 插件android-butterknife-zelezny.jar

    总的来说,"android-butterknife-zelezny.jar"插件是Android开发中提高生产力的利器,特别是对于那些经常使用ButterKnife的开发者来说。它不仅减少了手动编写重复代码的工作量,还让代码保持了良好的可读性和一致性...

    android-studio-2021.2.1.16-windows.zip

    Android Studio是Google官方推出的集成开发环境(IDE),专为Android应用开发设计。这款软件基于IntelliJ IDEA,提供了丰富的功能和工具,使得开发者能够高效地创建高质量的Android应用程序。"android-studio-2021.2...

Global site tag (gtag.js) - Google Analytics