开始接触安卓时,我们心中总会有一个疑问,Activity是个什么样的类?问什么都要继承Activity?
Activity是Android组件中最基本也是最为常见用的四大组件(Activity,Service服务,Content Provider内容提供者,BroadcastReceiver广播接收器)之一,简单来说,Activity就是一个界面,我们安卓手机每次显示在屏幕上的都是一个Activity,它的作用是一个负责与用户交互,我们平时触屏,点击都是通过activity与后台控制程序交互。
安卓里面,界面界面显示和界面实现是分离的,分别src目录下的java代码和layout目录下的xml文件控制。如何理解这种分离呢?既然是分离的,那么它们的结合点又是什么呢?
package com.example.learningtext1_startanotheractivity; import android.net.Uri; import android.os.Bundle; import android.app.Activity; import android.content.Intent; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; public class FirstActivity extends Activity { private Button startBtn; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //setContentView(R.layout.activity_first); setContentView(R.layout.activity_my); startBtn=(Button)this.findViewById(R.id.start_btn); startBtn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { startActivity(new Intent(FirstActivity.this, MyActivity.class)); } }); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.first, menu); return true; } }
看上面的代码,程序是通过setContentView(R.layout.activity_first)函数将界面显示出来的。我们没在layout文件下创建一个xml布局文件,系统就自动会在R.java文件中注册一个layout资源id,我们在显示的时候,既可以通过这个资源id找到对应的界面实现文件,从而显示相应的文件。为了表现出这种特点,我故意将自动生成的注释掉了,而自己手动创建了一个activity_my.xml文件,如下:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <Button android:id="@+id/start_btn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/start_btn" /> </LinearLayout>
到这一步,第一个自定义界面就生成了。那么如何实现界面的跳转呢?界面跳转,我们至少还需要一个界面。这里我手动添加了一个MyActivity.JAVA文件
package com.example.learningtext1_startanotheractivity; import android.app.Activity; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; public class MyActivity extends Activity{ private Button startBtn; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_first); startBtn=(Button)findViewById(R.id.button1); startBtn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.baidu.com"))); } }); } }
注意如果是手动添加的话,要在AndroidManifest.xml文件中注册,否则会找不到对应文件添加代码后,如下:
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.learningtext1_startanotheractivity" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="18" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.example.learningtext1_startanotheractivity.FirstActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".MyActivity" android:label="@string/app_name"> </activity> </application> </manifest>
当然也可使用adt自动生成,这样就不用手动注册了。要想实现跳转,分两步:一是监听,二是跳转。
监听
startBtn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//跳转,前是当前的activity,后面的是要跳往的activity
startActivity(new Intent(FirstActivity.this, MyActivity.class));
}
});
运行效果图:
点击安钮,跳转到第二个界面
点击按钮,条转到百度首页
相关推荐
这个“Android小程序源代码集合”是一个极好的资源,适合初学者入门,同时也因为其简单易懂的特点,使得学习过程更为顺畅。 一、Android小程序基础 Android小程序基于Java语言开发,利用Google的Android SDK工具。...
总的来说,"Android 第一个简单的程序例子"是一个典型的Android入门教程,涵盖了Android应用的基本组件(如`Activity`和布局)、事件处理和UI设计。通过深入学习这个例子,开发者可以逐步熟悉Android开发环境,并为...
这个项目是关于开发一个安卓平台上的小程序,类似于苹果手机中的备忘录与提醒事项功能的整合。它旨在为用户提供一个集记事、提醒于一体的便捷工具,适用于日常任务管理和个人事务记录。 【描述】:“苹果手机的备忘...
RelativeLayout则允许视图根据彼此的位置进行对齐,例如一个按钮位于父视图的底部,另一个按钮位于第一个按钮的右侧。嵌套RelativeLayout可以在不同层级上定义视图之间的关系,实现复杂的相对定位。 ...
### 安卓平台的搭建与第一个安卓程序 #### 一、安卓平台的搭建 ##### 1.1 软件下载 **1.1.1 JDK的下载** 要搭建安卓开发环境,首先需要安装Java Development Kit (JDK)。通过百度搜索引擎搜索“JDK”,找到...
通过实践这些小程序,学习者可以逐步建立起对Android开发的全面理解,并为后续的高级主题打下坚实基础。记住,Android开发是一个不断学习和实践的过程,理论知识与实际操作相结合才能更好地提升技能。
在Android开发的学习过程中,创建第一个界面例子程序是至关重要的步骤,它能让你对Android应用程序的基本结构和工作原理有一个直观的理解。本教程将深入探讨如何在Android环境中构建一个简单的用户界面,我们将称之...
本资源“android小程序源码”旨在为初学者提供一个学习和实践Android开发的平台,尤其对于刚接触Android编程的新手来说,这是一个非常宝贵的学习材料。 1. **Android SDK与环境配置** 在开发Android小程序之前,...
1. **Android Studio**: Android小程序开发的基础工具是Android Studio,这是一个强大的集成开发环境(IDE),提供了代码编辑、调试、性能优化以及版本控制等多种功能。下载并安装Android Studio后,开发者可以创建新...
本资源包“Android几个初学者的小程序”显然旨在为新手提供一系列基础项目,帮助他们通过实践来理解Android应用开发的基础知识。下面将详细阐述这些小程序可能涉及的Android开发关键概念和技术。 1. **环境搭建**:...
【安卓小程序色谱卡开发详解】 ...总之,Android小程序结合色谱卡功能,可以提供强大的数据呈现能力,帮助用户更好地理解和分析信息。通过Eclipse这一强大工具,开发者可以高效地实现这一目标,提升用户体验。
总之,这个"android 备忘录小程序"涵盖了Android应用开发的多个关键方面,从UI设计到数据管理,再到手势识别和权限控制,展示了Android平台开发的全面性。通过深入学习和分析这个项目,开发者可以提升其Android编程...
【标题】"我的第一个Android程序"揭示了初学者在Android应用开发中的基本步骤。这个标题意味着我们将探讨如何从零开始创建一个简单的Android应用程序,通常这是一个基础教程,旨在帮助新手理解Android Studio集成...
为了使两个Activity同时进行动画,你需要在第一个Activity的`onPause()`方法中启动第二个Activity,并在第一个Activity的动画开始后立即调用`finish()`,这样当第一个Activity淡出时,第二个Activity会同时淡入。...
标题 "第一个android小程序,总结" 暗示了这篇内容可能是关于Android开发的初步实践,特别是针对小程序的开发。在Android平台上,小程序通常指的是轻量级的应用程序,它们不需要安装即可运行,通常由一系列Web技术...
在Android程序开发中,"第一个Android程序"通常是学习者入门时的重要步骤,它涉及到许多基础知识,包括Android Studio的使用、布局设计、活动(Activity)管理、数据绑定以及UI元素的交互等。这篇博客“第一个Android...
例如,你可以有一个叫做`background_activity1.png`的图片用于第一个Activity,另一个叫做`background_activity2.png`的图片用于第二个Activity。 2. **颜色资源**:如果你的背景是纯色,可以在res/values/colors....
这个压缩包文件包含了一个基本的Android个人记账应用程序的源代码。这个程序是为那些希望学习如何在Android平台上开发理财类应用的人准备的。通过分析和研究这些源代码,开发者可以了解到如何在Android环境中实现一...
本教程将详细介绍如何使用Android Studio来实现一个天气预报小程序。 一、项目初始化与设置 1. 创建新项目:打开Android Studio,选择“Start a new Android Studio project”,在向导中填写项目名、包名和保存...
在Android开发中,动画效果...总之,通过对`Dragger-android`项目的深入研究,开发者不仅可以学习到如何实现各种Activity切换动画,还能提升对Android动画系统的理解,这对于创建具有专业视觉效果的应用程序至关重要。