码迷,mamicode.com
首页 > 移动开发 > 详细

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

时间:2015-07-06 19:54:04      阅读:186      评论:0      收藏:0      [点我收藏+]

标签:

前言

承接上一篇, 

技术分享

接下来介绍点击 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();
		}*/
	}

运行效果看看 ~~




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

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

标签:

原文地址:http://blog.csdn.net/oscar999/article/details/46678701

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!