- 认识Activity
Activity是应用程序的一个组件
详解Android的Activity组件 - 创建Activity
- 一个Activity就是一个类,并且这个类要继承Activity
- 需要覆写onCreate方法
- 第一个Activity都需要在AndroidManifest.xml文件中进行配置
- 为Activity添加必要控件
- 向Activity添加一个组件
res/layout/main.xml 布局文件 - 在一个Activity当中启动另外一个Activity的方法
参照第二个例子:Activity002 - 使用Intent在Activity之间传递数据的基本方法
参照第二个例子:Activity002 - 为控件添加监听器
注:使用内部类的好处:可以调用外部类的成员变量和成员方法
例中所贴代码为以下几部分代码:
java代码
res/layout/activity_xxx.xml
res/values/strings.xml
AndroidManifest.xml
-----------------------------------------------------------------------------------
第一个例子:Activity001
MainActivity.java
package com.example.activity001; import android.app.Activity; import android.os.Bundle; import android.view.Menu; import android.widget.Button; import android.widget.TextView; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); TextView myTextView = (TextView)findViewById(R.id.myTextView); Button myButton = (Button) findViewById(R.id.myButton); myTextView.setText("我的第一个TextView"); myButton.setText("我的第一个Button"); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } }
res/laout/activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <TextView android:id="@+id/myTextView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/hello_world" /> <Button android:id="@+id/myButton" android:layout_width="fill_parent" android:layout_height="wrap_content" /> </LinearLayout>
res/values/strings.xml
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">Activity001</string> <string name="action_settings">Settings</string> <string name="hello_world">Hello world!</string> </resources>
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.activity001" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="9" android:targetSdkVersion="9" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.example.activity001.MainActivity" 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> </manifest>
运行效果:
-------------------------------------------------------------------------------------------------------------
第二个例子:Activity002
MainActivity.java
package com.example.activity002; import android.app.Activity; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.TextView; public class MainActivity extends Activity { // 用于跳转到另一个Activity private Button myButton = null; // 用于发短信 private Button sendButton = null; private TextView myTextView = null; private static int count = 0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); myTextView = (TextView) findViewById(R.id.myTextView); myTextView.setText("这是第一个Activity\tcount: " + (count++)); myButton = (Button) findViewById(R.id.myButton); myButton.setText("跳转到第二个Activity"); myButton.setOnClickListener(new MyButtonListener()); sendButton = (Button) findViewById(R.id.sendButton); sendButton.setText("跳转到发送短信Activity"); sendButton.setOnClickListener(new SendButtonListener()); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } class MyButtonListener implements OnClickListener { @Override public void onClick(View v) { Intent intent = new Intent(); intent.setClass(MainActivity.this, SecondActivity.class); // 两个Activity之间传递参数 intent.putExtra("activity_param_001", "参数值来自Activity"); MainActivity.this.startActivity(intent); } } class SendButtonListener implements OnClickListener { @Override public void onClick(View v) { // 实现了一次转变到发送短信的界面。 // Uri uri = Uri.parse("smsto://730371432"); Uri uri = Uri.parse("smsto:18352507379"); Intent intent = new Intent(Intent.ACTION_SENDTO, uri); // 这个程序是存放的是键值对 intent.putExtra("sms_body", "the SMS text"); // 这个程序也可以写作:startActivity(intent);表示的启动 MainActivity.this.startActivity(intent); } } }
SecondActivity.java
package com.example.activity002; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.TextView; public class SecondActivity extends Activity { // 返回到第一个Activity private Button myButton = null; private TextView myTextView = null; private TextView showTextView = null; private static int count = 0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_second); myTextView = (TextView) findViewById(R.id.my2TextView); myTextView.setText("这是第二个Activity\tcount: " + (count++)); myButton = (Button) findViewById(R.id.my2Button); myButton.setText("跳转到第一个Activity"); myButton.setOnClickListener(new My2ButtonListener()); Intent intent = getIntent(); String paramValue = intent.getStringExtra("activity_param_001"); showTextView = (TextView) findViewById(R.id.showTextView); showTextView.setText(paramValue); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } class My2ButtonListener implements OnClickListener { @Override public void onClick(View v) { Intent intent = new Intent(); intent.setClass(SecondActivity.this, MainActivity.class); SecondActivity.this.startActivity(intent); } } }
布局文件
res/layout/activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <TextView android:id="@+id/myTextView" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/activity_001" /> <Button android:id="@+id/myButton" android:layout_width="fill_parent" android:layout_height="wrap_content" /> <Button android:id="@+id/sendButton" android:layout_width="fill_parent" android:layout_height="wrap_content" /> </LinearLayout>
res/layout/activity_second.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".SecondActivity" > <TextView android:id="@+id/my2TextView" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/activity_002" /> <Button android:id="@+id/my2Button" android:layout_width="fill_parent" android:layout_height="wrap_content" /> <TextView android:id="@+id/showTextView" android:layout_width="fill_parent" android:layout_height="wrap_content" /> </LinearLayout>
res/values/strings.xml
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">Activity002</string> <string name="action_settings">Settings</string> <string name="hello_world">Hello world!</string> <string name="activity_001">第一个Activity</string> <string name="activity_002">第二个Activity</string> </resources>
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.activity002" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="9" android:targetSdkVersion="9" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name=".MainActivity" 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=".SecondActivity" android:label="@string/app_name" > </activity> </application> </manifest>
运行效果:
相关推荐
本自学笔记将深入探讨Intent的使用、分类及其在Android系统中的作用。 Intent主要用于启动一个活动(Activity)、服务(Service)或者传递数据。在Android应用中,活动是用户界面的基本单元,而服务则在后台执行...
这篇学习笔记将深入探讨Activity的相关知识,包括创建、声明、启动、关闭以及生命周期管理,同时还会涉及Task和Back Stack的管理。 一、Activity创建: 在Android应用中,Activity的创建通常始于一个Java类,这个类...
本篇“Android学习笔记-- Notifying the User”将深入探讨如何有效地利用通知功能来提升用户体验。 首先,我们要理解Android的通知层次结构。在Android系统中,通知是通过`Notification`类来创建的。这个类包含各种...
这里的intent-filter定义了Activity可以响应的Intent类型。在这个例子中,我们没有特别定义ACTION和CATEGORY,因为我们的Intent是在代码中明确指定目标Activity的,所以不需要这部分配置。 总之,Intent在Android...
同时,理解Android的组件模型,如Activity、Intent、Service、BroadcastReceiver和ContentProvider,也是进一步深入学习Android开发的基础。 总之,"新版Android开发教程&笔记3--环境搭建与解析"将引导你完成...
本自学笔记将深入探讨Android的任务栈机制,以帮助开发者更好地理解和利用这一特性来优化用户体验。 一、任务与任务栈 在Android中,一个任务(Task)是一个应用程序执行的上下文,它可以包含多个活动(Activity)...
Android Activity学习笔记 Android Activity是Android系统中最基本的组件之一,它负责处理用户交互和显示用户界面。本文将深入讲解Activity的生命周期、Activity之间的数据交互、Activity启动模式、Task和BackStack...
6. **Activity和Intent**:Activity是Android应用的基本组件,代表一个用户可见的屏幕。Intent则用于在Activity之间传递数据或启动服务,理解它们的生命周期和通信机制是Android开发的关键。 7. **Fragment**:...
总之,Android的基础UI编程涵盖了布局管理、控件使用、事件处理、Intent机制、主题样式、资源管理和手势识别等多个方面。通过深入学习和实践,开发者可以创建出功能强大且用户体验优秀的Android应用。
"新版Android开发教程&笔记2--基础入门二"聚焦于为开发者提供最新的Android开发知识,帮助初学者迅速掌握Android应用开发的基本概念和技术。这篇教程可能涵盖了以下几个核心知识点: 1. **Android Studio入门**:...
总结起来,Android应用中的Activity管理和Intent使用是开发过程中的关键部分。多个Activity可以通过Intent相互调用并传递数据,使得应用能够实现更复杂的交互和功能。理解并熟练运用这些概念,对于构建动态、交互...
Android Intent 学习笔记
在本篇学习笔记中,我们将探讨如何使用剪切板在Activity之间传递值,以及其相较于传统方法的优势。 首先,剪切板在Android中由`ClipboardManager`对象管理。由于它是一个系统服务,我们不能直接实例化,而是需要...
当我们点击一个笔记条目,`NotesList`Activity可以通过构建一个Intent来启动`NoteDetail`Activity,Intent中包含动作(如VIEW_ACTION或EDIT_ACTION)和被选中笔记的URI。这样,系统就能找到合适的Activity来显示或...
Android学习笔记是Android开发者的必读书籍,书中涵盖了Android系统架构、Activity、Intent、资源管理等多方面的知识。本笔记对应的学习资源《第一行代码》是Android开发者的入门必读书籍,书中系统地介绍了Android...
3. **Activity与Intent**:Activity是Android应用的基本单元,代表屏幕上的一个视图。Intent则用于在Activity之间传递数据和启动操作。例如,你可以在一个Activity中启动另一个Activity,显示新的用户界面。 4. **...