`

Android学习2——Activity之间跳转

阅读更多

原创内容,转载请注明出处

Activity是Android的四大控件之一,它是直接和用户打交道的界面,既然作为界面,那么界面和界面之间将会有一定的通讯,通讯则代表数据的传输。Activity之间的跳转通过Intent类完成,Intent类在跳转过程中还可携带数据。

 

修改activity_main.xml布局文件,添加一个文本框和发送按钮,点击发送按钮时,会将文本框的信息传到FirstActivity,并完成跳转。

<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"
    tools:context="com.cygoat.myapp.MainActivity" >
	
    <EditText
        android:id="@+id/message"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:hint="@string/hello_world" />
	<Button android:layout_width="wrap_content"
	    android:layout_height="wrap_content"
	    android:text="@string/send_button"
	    android:onClick="sendMessage"/>
</LinearLayout>

 

修改MainActivity.java,添加sendMessage(View)方法,当发送按钮点击时,会调用该方法。该方法会将文本框的消息保存到Intent对象中,并通过Intent实例跳转。代码如下

package com.cygoat.myapp;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.EditText;

public class MainActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
	}

	@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;
	}

	@Override
	public boolean onOptionsItemSelected(MenuItem item) {
		// Handle action bar item clicks here. The action bar will
		// automatically handle clicks on the Home/Up button, so long
		// as you specify a parent activity in AndroidManifest.xml.
		int id = item.getItemId();
		if (id == R.id.action_settings) {
			return true;
		}
		return super.onOptionsItemSelected(item);
	}
	
	public void sendMessage(View view){
		Intent intent = new Intent(this,FirstActivity.class);
		EditText text = (EditText) findViewById(R.id.message);
		intent.putExtra("message", text.getText().toString());
		startActivity(intent);
	}
}

 

创建activity_first.xml布局,用来展示接收的消息,内容如下

<RelativeLayout 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: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="com.cygoat.myapp.FirstActivity" >

    <TextView
        android:id="@+id/result"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world" />

</RelativeLayout>

 

创建FirstActivity.java类,该类接收消息并展示。代码如下

package com.cygoat.myapp;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.TextView;

public class FirstActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_first);
		Intent intent = getIntent();
		String message = intent.getStringExtra("message");
		TextView textView = (TextView) findViewById(R.id.result);
		textView.setText("内容为:"+message);
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.first, menu);
		return true;
	}

	@Override
	public boolean onOptionsItemSelected(MenuItem item) {
		// Handle action bar item clicks here. The action bar will
		// automatically handle clicks on the Home/Up button, so long
		// as you specify a parent activity in AndroidManifest.xml.
		int id = item.getItemId();
		if (id == R.id.action_settings) {
			return true;
		}
		return super.onOptionsItemSelected(item);
	}
}

 

测试如下


 



 
 

源代码如附件

  • 大小: 40.3 KB
  • 大小: 41.8 KB
  • 大小: 41.8 KB
分享到:
评论

相关推荐

    Android四大组件——Activity(一)Activity之间通信及其生命周期变化

    例如,当需要从一个Activity跳转到另一个Activity时,我们可以创建一个Intent,设置目标Activity的类名,然后调用`startActivity()`方法。如果需要传递数据,可以在Intent中添加额外的数据,如键值对,通过`putExtra...

    安卓Android源码——(Activity跳转与操作).zip

    这个压缩包文件“安卓Android源码——(Activity跳转与操作).zip”显然专注于讲解如何在Android系统中进行Activity的跳转和操作。以下是关于这个主题的详细知识点: 一、Activity生命周期 1. Activity有七个关键状态...

    安卓Android源码——(Activity跳转与操作).rar

    本文将深入探讨Android源码中的Activity跳转与操作,这对于我们理解和优化应用性能至关重要。 首先,Activity的启动过程涉及到Intent的创建与传递。Intent在Android中起到了消息传递的作用,它用于在组件之间传递...

    Android学习笔记(十)——实现新闻列表

    Android学习笔记(四)Android 中Activity页面的跳转及传值 Android学习笔记(五)——Toast提示、Dialog对话框、Menu菜单 Android学习笔记(六)——自定义ListView布局+AsyncTask异步任务 Android学习笔记(七)...

    Android开发 猴子摘桃小项目——学习Activity之间的数据回传

    本项目"猴子摘桃"是一个简单的小程序,旨在帮助开发者学习和理解如何在不同的Activity之间进行数据传递,这是Android开发中的一项重要技能。下面将详细阐述在Android中Activity间数据回传的关键知识点。 1. **...

    Android学习之路——4.Activity简介

    这篇博客"Android学习之路——4.Activity简介"很可能会详细解释Activity的基本概念、生命周期以及如何在实践中使用它。 Activity作为Android应用程序的一个窗口,它可以显示用户界面,并响应用户的交互。每个...

    动手学Android之二——初识Activity示例代码

    当我们谈论"动手学Android之二——初识Activity示例代码"时,这通常指的是一个简单的教程,旨在帮助初学者理解如何创建并运行第一个Android应用,从而开始他们的Android开发之旅。 在Android中,Activity是负责显示...

    第7章 良好的学习开端——Android基本组件介绍之Android应用的灵魂——Intent和Activity介绍与实例

    android入门级视频:Android基本组件介绍之Android应用的灵魂——Intent和Activity介绍与实例

    安卓Android源码——模拟Activity进出栈.rar

    Intent是一个意图对象,用于表示从一个Activity跳转到另一个Activity的行为。我们可以设置Intent的ACTION、CATEGORY、DATA等属性,来指定要启动的目标Activity。然后调用startActivity()或startActivityForResult()...

    activity跳转动画效果

    "activity跳转动画效果"是提升用户体验的重要手段之一。 1. **动画类型**:Android提供了两种类型的动画——进入动画(Entrance)和退出动画(Exit),以及共享元素动画(Transition Animation)。进入动画是指...

    Android中界面间的跳转(两种方式)

    总结来说,`startActivity(Intent)`适合简单的Activity跳转,无需返回结果;而`startActivityForResult(Intent, int)`则适用于需要从新Activity获取结果的场景。了解并熟练掌握这两种方法,对进行Android应用的界面...

    【安卓项目】——新闻资讯类项目

    Android学习笔记(四)Android 中Activity页面的跳转及传值 Android学习笔记(五)——Toast提示、Dialog对话框、Menu菜单 Android学习笔记(六)——自定义ListView布局+AsyncTask异步任务 Android学习笔记(七)...

    andorid Lollipop(5.0)--activity跳转动画

    本篇将详细介绍Android 5.0中的Activity跳转动画,特别是共享元素(Shared Element)的动画效果。 一、Activity跳转动画基础 在Android 5.0之前,Activity之间的切换主要依靠`overridePendingTransition()`方法来...

    Android源码——Intent切换.zip

    在Android应用中,Intent切换常指的是通过Intent在不同的Activity之间跳转。例如,从一个列表Activity点击一个条目后,可以通过Intent启动详情Activity,传递所需的数据。在这个过程中,Intent起到了消息传递的作用...

    Android Studio —— 界面切换

    2. **XML布局与视图绑定**: Android Studio支持XML布局文件设计界面,并可以通过Data Binding库将数据与UI元素绑定,简化界面操作。在XML中定义按钮等交互元素,通过点击事件触发Intent,实现界面跳转。 3. **...

    Android基础——Activity基础

    应用内Activity的跳转方式 一、通过显式意图跳转,如字面意思一样,跳转的目的地是可以明确看到的 二、通过隐式意图跳转,这种方式的跳转需要我们在AndroidManifest.xml文件中为目的Activity配置Action和Category ...

    Android Activity之间相互调用与传递参数的原理与用法分析

    在Android应用开发中,Activity是用户界面的基本单元,它们之间的交互是通过Intent对象来实现的。Intent不仅仅用于启动另一个Activity,还可以启动Service、发送Broadcast消息,甚至触发ContentProvider的操作。理解...

    动手学Android之八——搞定列表例子程序

    在“动手学Android之八——搞定列表例子程序”中,我们将深入探讨如何在Android应用中创建和使用ListView,以及如何通过适配器(Adapter)将数据源与列表视图关联起来。下面,我们将会详细介绍以下几个关键知识点: 1...

    Android Studio —— 界面切换且传参

    3. 要从一个Activity跳转到另一个Activity,可以使用`Intent`对象。创建一个Intent,并使用`setClass()`或`setComponent()`方法指定目标Activity,然后调用`startActivity()`启动它。例如: ```java Intent intent...

Global site tag (gtag.js) - Google Analytics