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

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

时间:2014-06-02 11:03:45      阅读:233      评论:0      收藏:0      [点我收藏+]

标签:des   android   cWeb   c   style   class   

前言

[Android系列—] 2. Android 项目目录结构与用户界面的创建

在上一篇中,在一个活动中(activity)中显示了一个输入框和一个按钮。这一篇讲接着上一篇继续介绍如何在点击 Send 按钮时,通过添加一些代码到MainActivity中开始一个新的Activity.


添加Send 按钮的响应

添加按钮的点击事件响应,打开 fragment_main.xml

在Button 中添加 android:onClick 属性:

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/button_send"
    android:onClick="sendMessage" />
sendMessage 是activity 中的方法,当点击按钮时触发。

打开src 包目录中的 MainActivity.java  , 添加以下方法:

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

这个方法的要求是:

1, public

2,  void return

3, 有一个View 的参数

接下来,逐步完善方法的内容。


构建一个意图(Intent)

Intent 是提供两个独立组件(比如两个activities)运行时绑定的对象。  Intent 代表了应用程序 ”意图做某事“。它可以做很多的事情,但是开始另外一个活动是最常见的用法。

在 sendMessage() 方法中, 创建一个Intent 呼叫 DisplayMessageActivity

Intent intent = new Intent(this, DisplayMessageActivity.class);
使用Intent 之前,需要先导入:

import android.content.Intent;
第一个参数是Context (Activity 是Context 的子类)


在方法体中,可以使用findViewById() 找到定义的EditText ,并取得输入的值传给Intent

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 可以使用putExra 方法以键值的方法传递数据。

EXTRA_MESSAGE 是定义的静态变量

public class MainActivity extends ActionBarActivity {
    public final static String EXTRA_MESSAGE = "com.oscar999.myfirstapp.MESSAGE";
    ...
}


启动第二个活动

调用startActivity(),传入Intent 来启动一个activity.

到此为止,  sendMessage 完整代码如下:


/** Called when the user clicks the Send button */
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);
}
但是, DisplayMessageActivity 这个类还没有定义。

接下来就定义这个类

1 . 点击 New 的图标--》  android --> android Activity 点击下一步

bubuko.com,布布扣

2. 选择BlankActivity后 下一步

bubuko.com,布布扣

3.  输入相关信息,点完成

bubuko.com,布布扣


创建完成之后, 打开这个文件。

1.  继承了 onCreate() 方法, 这个方法是必须的。

2.  onCreateOptionsMenu(),这个方法也是继承来的,不过不需要可以删除

3. onOptionsItemSelected(),   同样是继承的,处理动作条的向上行为。

4. PlaceholderFragment,扩展 Fragment 类的类。

Fragments 把应用程序功能分解成可重用的模组。


修改 onCreate 的方法, 修改后如下:

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

    // Get the message from the intent
    Intent intent = getIntent();
    String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE);

    // Create the text view
    TextView textView = new TextView(this);
    textView.setTextSize(40);
    textView.setText(message);

    // Set the text view as the activity layout
    setContentView(textView);
}


setContentView 用来设置活动的布局。

除了.java 文件之外, 来看看其他文件还有什么改变的

1. String.xml

 bubuko.com,布布扣

2. AndroidManifest.xml

bubuko.com,布布扣


3.  layout 目录下多出了 activity_display_message.xml

bubuko.com,布布扣


看一下最终实现的效果

bubuko.com,布布扣


bubuko.com,布布扣

[Android系列—] 3. 启动另外的活动(Activity),布布扣,bubuko.com

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

标签:des   android   cWeb   c   style   class   

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

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