[Android5 系列—] 2. 开始另外一个活动

前言

承接上一篇,

接下来介绍点击 Send 按钮后的操作。

响应发送按钮

1.  res/layout 目录下。打开 activity_my.xml

2.  在<Button> 元素里面,添加属性  android:onClick

res/layout/activity_my.xml

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/button_send"
    android:onClick="sendMessage" />

sendMessage - 这是点击按钮时触发的方法名。

3. 在com.oscar999.helloworld 包下,  打开MainActivity.java 文件(这是我的本地java 包及类名)

在这个类中,添加 sendMessage() 方法, 类似:

/** Called when the user clicks the Send button */
public void sendMessage(View view) {
    // Do something in response to button
}

这个方法的定义要求如下:

- 必须是 public 的

- void 的返回值

- View 作为其唯一的参数

构建一个意图(Intent)

Intent 是一个提供两个独立组件运行时组合(类似两个 activities)。

1. sendMessage  方法内容添加如下:

public void sendMessage(View view) {
  Intent intent = new Intent(this, DisplayMessageActivity.class);
}

导入Intent 类

import android.content.Intent;

2. 取得EditText 输入的内容, 放入intent 的 extra 中

public void sendMessage(View view) {
  Intent intent = new Intent(this, DisplayMessageActivity.class);
  EditText editText = (EditText) findViewById(R.id.edit_message);
  String message = editText.getText().toString();
  intent.putExtra(EXTRA_MESSAGE, message);
}

Intent 可以通过键值对的方式传递值。

3. 在 java 中 添加 EXTRA_MESSAGE 的定义

public class MainActivity extends Activity {

	public final static String EXTRA_MESSAGE = "com.oscar999.helloworld.MESSAGE";

4. 在 sendMessage()方法中,  呼叫 startActivity() 方法。传递 Intent 参数

完整代码如下:

public void sendMessage(View view) {
    Intent intent = new Intent(this, DisplayMessageActivity.class);
    EditText editText = (EditText) findViewById(R.id.edit_message);
    String message = editText.getText().toString();
    intent.putExtra(EXTRA_MESSAGE, message);
    startActivity(intent);
}

这里基本上就完成了呼叫一个 activity 的方法。接下来就要完成上面提到的 DisplayMessageActivity 的Activity.

创建第二活动(activity)

所有的Activity 的子类都必须继承 onCreate() 方法。 这个方法就是活动接收含有message 的intent, 然后呈现这个message. onCreate()方法必须使用 setContentView()方法定义活动布局。这也是活动开始设置活动组件的地方。

创建步骤:

1. New --> Android --> Android Activity

2. 选择Blank Activity, 进入如下页面

3. 以上部分输入:

Activity Name: DisplayMessageActivity

Layout Name: activity_display_message

Tiltle: My Message

Hierarchical Parent: com.oscar999.helloworld.MainActivity

点击完成

4. 打开  DisplayMessageActivity.java

这个文件有三个方法

onCreate()  -- 这里会更新的方法

onOptionsItemsSelected() -> 处理操作栏向上行为的

onCreateOptionsMenu() -> 暂时用不到, 移除

5. 以上创建activity 的动作,除了新增Java 文件外, 还修改了:

strings.xml

AndroidManifest.xml,

这里和Android 4 产生的稍微有一些差异(路径)

修改 onCreate() 方法, 让这个activity 显示的是从 MainActivity 传过来的Message , 修改后的代码如下:

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);

		Intent intent = getIntent();
		String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE);

		TextView textView = new TextView(this);
		textView.setTextSize(40);
		textView.setText(message);

		setContentView(textView);

		/*if (savedInstanceState == null) {
			getFragmentManager().beginTransaction()
					.add(R.id.container, new PlaceholderFragment()).commit();
		}*/
	}

运行效果看看 ~~

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-12-18 20:15:23

[Android5 系列—] 2. 开始另外一个活动的相关文章

Android学习笔记(二)——探究一个活动

//此系列博文是<第一行Android代码>的学习笔记,如有错漏,欢迎指正! 活动(Activity)是最容易吸引到用户的地方了,它是一种可以包含用户界面的组件,主要用于和用户进行交互.一个应用程序中可以包含零个或多个活动.活动是Android四大组件之一,下面我们来探究一个活动. 1.创建一个活动: 我们可以按照学习笔记(一)中的流程创建了一个活动,创建之后可以看见IDE已经为我们写好的默认onCreate()方法: 默认onCreate()方法非常简单,就是调用了父类的 onCreate(

[Android系列—] 3. 启动另外的活动(Activity)

前言 [Android系列-] 2. Android 项目目录结构与用户界面的创建 在上一篇中,在一个活动中(activity)中显示了一个输入框和一个按钮.这一篇讲接着上一篇继续介绍如何在点击 Send 按钮时,通过添加一些代码到MainActivity中开始一个新的Activity. 添加Send 按钮的响应 添加按钮的点击事件响应,打开 fragment_main.xml 在Button 中添加 android:onClick 属性: <Button android:layout_widt

销毁一个活动

要销毁一个活动很容易,只需要点一下返回键(在手机中点).但是如果想在程序中自己指定,其实也很简单,用finish()方法.结合以前的例子,只用在btn的事件中添加以下代码: finish();//销毁一个线程 1 package cn.hengzhe.tishi; 2 3 import android.support.v7.app.AppCompatActivity; 4 import android.os.Bundle; 5 import android.view.Menu; 6 import

返回数据给上一个活动

我们都知道,android开发中一个活动跳转时是可以带数据传递给下一个活动的,那么能不能够返回数据给上一个活动呢?答案是肯定的.不过不同的是,返回上一个活动只需要按一下Back键就可以了,并没有一个用于启动活动Intent来传递数据.通过查阅文档你会发现,Activity中还有一个startActivityForResult()方法也是用于启动活动的,但这个方法期望在活动销毁的时候能返回一个结果给上一个活动.毫无疑问,这就是我们所需要的. startActivityForResult()方法接收

Recreating an Activity 重新创建一个活动

There are a few scenarios in which your activity is destroyed due to normal app behavior, such as when the user presses theBack button or your activity signals its own destruction by calling finish(). The system may also destroy your activity if it's

向下一个活动传递数据

实验名称:向下一个活动传递数据 实验现象:点击主活动button,在进入第二个活动的时候会打印一行信息Hello SecondActivity 使用技术:Intent中的putExtra()方法的重载. 步骤: 1.创建一个项目,建立一个空的活动,加载布局,添加一个button. 2.再次创建一个空活动 3.修改button的单击事件 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(sav

Intent(三)向下一个活动传递数据

向下传递活动很简单,可以我采用putExtra()方法的重载,把我们想要传递的数据暂时放在intent中,启动活动时从这里取就可以了. 首先我们在MainActivity(主活动)显式声明intent的方式来启动SecondActivity,通过PutExtra()方法来传递数据.注意该方法有两个参数,[keyName,vule]:第一个是行参,第二个才是实参: String str_info="putExtra传递数据"; Intent intent=new Intent(MainA

Starting an Activity 开启一个活动

Starting an Activity 开启一个活动 Previous NextGet  started This lesson teaches you to 这个课程教你去了解以下: Understand the Lifecycle Callbacks       理解生命周期回调 Specify Your App's Launcher Activity     指定应用程序的启动活动 Create a New Instance                           创建一个新

向上一个活动传递数据

实验名称:返回数据给上一个活动 实验现象:第二个活动按键点击进入第一个活动,出现Hello FirstActivity 使用技术:startActivityForReques方法.onActivityRequest()方法 步骤: 1.新建一个项目,创建主活动,加载布局,布置一个button 2.再次新建一个活动,加载布局,同时放置一个button 3.修改第一个活动的按键点击事件 @Override protected void onCreate(Bundle savedInstanceSta