[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();
		}*/
	}

运行效果看看 ~~




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

oscar999

送以玫瑰,手留余香

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值