`
ln_ydc
  • 浏览: 270755 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
社区版块
存档分类
最新评论

Android笔记(3)---Activity和Intent

 
阅读更多

 

  1. 认识Activity 
    Activity是应用程序的一个组件
    详解Android的Activity组件
  2. 创建Activity
    1. 一个Activity就是一个类,并且这个类要继承Activity
    2. 需要覆写onCreate方法
    3. 第一个Activity都需要在AndroidManifest.xml文件中进行配置
    4. 为Activity添加必要控件
  3. 向Activity添加一个组件
    res/layout/main.xml        布局文件
  4. 在一个Activity当中启动另外一个Activity的方法
    参照第二个例子:Activity002
  5. 使用Intent在Activity之间传递数据的基本方法
    参照第二个例子:Activity002
  6. 为控件添加监听器
    注:使用内部类的好处:可以调用外部类的成员变量和成员方法

 

 

例中所贴代码为以下几部分代码:

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>

 

运行效果:



 

 


 
 


 
 


 

  • 大小: 51.5 KB
  • 大小: 58.8 KB
  • 大小: 57.4 KB
  • 大小: 52.5 KB
分享到:
评论

相关推荐

    Android自学笔记-14-意图(Intent)

    本自学笔记将深入探讨Intent的使用、分类及其在Android系统中的作用。 Intent主要用于启动一个活动(Activity)、服务(Service)或者传递数据。在Android应用中,活动是用户界面的基本单元,而服务则在后台执行...

    Android学习笔记-Activity篇

    这篇学习笔记将深入探讨Activity的相关知识,包括创建、声明、启动、关闭以及生命周期管理,同时还会涉及Task和Back Stack的管理。 一、Activity创建: 在Android应用中,Activity的创建通常始于一个Java类,这个类...

    Android学习笔记-- Notifying the User

    本篇“Android学习笔记-- Notifying the User”将深入探讨如何有效地利用通知功能来提升用户体验。 首先,我们要理解Android的通知层次结构。在Android系统中,通知是通过`Notification`类来创建的。这个类包含各种...

    Android学习笔记--Activity中使用Intent传值示例代码

    这里的intent-filter定义了Activity可以响应的Intent类型。在这个例子中,我们没有特别定义ACTION和CATEGORY,因为我们的Intent是在代码中明确指定目标Activity的,所以不需要这部分配置。 总之,Intent在Android...

    新版Android开发教程&笔记3--环境搭建与解析

    同时,理解Android的组件模型,如Activity、Intent、Service、BroadcastReceiver和ContentProvider,也是进一步深入学习Android开发的基础。 总之,"新版Android开发教程&笔记3--环境搭建与解析"将引导你完成...

    Android自学笔记-16-任务栈

    本自学笔记将深入探讨Android的任务栈机制,以帮助开发者更好地理解和利用这一特性来优化用户体验。 一、任务与任务栈 在Android中,一个任务(Task)是一个应用程序执行的上下文,它可以包含多个活动(Activity)...

    Android Activity学习笔记

    Android Activity学习笔记 Android Activity是Android系统中最基本的组件之一,它负责处理用户交互和显示用户界面。本文将深入讲解Activity的生命周期、Activity之间的数据交互、Activity启动模式、Task和BackStack...

    新版Android开发教程笔记--基础入门一

    6. **Activity和Intent**:Activity是Android应用的基本组件,代表一个用户可见的屏幕。Intent则用于在Activity之间传递数据或启动服务,理解它们的生命周期和通信机制是Android开发的关键。 7. **Fragment**:...

    Android开发教程 笔记--基础UI编程

    总之,Android的基础UI编程涵盖了布局管理、控件使用、事件处理、Intent机制、主题样式、资源管理和手势识别等多个方面。通过深入学习和实践,开发者可以创建出功能强大且用户体验优秀的Android应用。

    新版Android开发教程&笔记2--基础入门二

    "新版Android开发教程&笔记2--基础入门二"聚焦于为开发者提供最新的Android开发知识,帮助初学者迅速掌握Android应用开发的基本概念和技术。这篇教程可能涵盖了以下几个核心知识点: 1. **Android Studio入门**:...

    Android学习笔记(七):多个Activity和Intent.doc

    总结起来,Android应用中的Activity管理和Intent使用是开发过程中的关键部分。多个Activity可以通过Intent相互调用并传递数据,使得应用能够实现更复杂的交互和功能。理解并熟练运用这些概念,对于构建动态、交互...

    Android Intent 学习笔记

    Android Intent 学习笔记

    Android学习笔记--使用剪切板在Activity中传值示例代码

    在本篇学习笔记中,我们将探讨如何使用剪切板在Activity之间传递值,以及其相较于传统方法的优势。 首先,剪切板在Android中由`ClipboardManager`对象管理。由于它是一个系统服务,我们不能直接实例化,而是需要...

    Android开发教程之Intent详细讲解--千锋培训

    当我们点击一个笔记条目,`NotesList`Activity可以通过构建一个Intent来启动`NoteDetail`Activity,Intent中包含动作(如VIEW_ACTION或EDIT_ACTION)和被选中笔记的URI。这样,系统就能找到合适的Activity来显示或...

    第一行代码 android学习笔记 完整版

    Android学习笔记是Android开发者的必读书籍,书中涵盖了Android系统架构、Activity、Intent、资源管理等多方面的知识。本笔记对应的学习资源《第一行代码》是Android开发者的入门必读书籍,书中系统地介绍了Android...

    Android开发教程笔记五--模拟器、应用1、2

    3. **Activity与Intent**:Activity是Android应用的基本单元,代表屏幕上的一个视图。Intent则用于在Activity之间传递数据和启动操作。例如,你可以在一个Activity中启动另一个Activity,显示新的用户界面。 4. **...

Global site tag (gtag.js) - Google Analytics