害,就装个as就装了一个几个小时。
今天先学了向 MainActivity 添加一些代码,这些代码可在用户点按 Send 时启动一个新的 Activity 来显示消息。
一、响应 Send 按钮
按照以下步骤操作,在 MainActivity.java 中添加一个由按钮调用的函数:
1.在文件 app > java > com.example.myfirstapp > MainActivity.java 中,添加 sendMessage() 函数存根,如下所示:
public void sendMessage(View view){
// Do something in response to button
}
由于 Android Studio 无法解析用作函数参数的 View 类。因此我搜了一下,直接按 Alt + Enter(在 Mac 上,则按 Option + Return),执行快速修复。
2.现在,返回到 activity_main.xml 文件,从按钮调用此函数:
在Design界面上,找到Button,按Enter,然后在右边的Attributes上找到onClick属性,下拉找到刚才添加的sendMessage函数。
接下来,就需要填写此函数以读取文本字段的内容,并将该文本传递给另一个 Activity。
二、构建一个 Intent
Intent 是指在相互独立的组件(如两个 Activity)之间提供运行时绑定功能的对象。Intent 表示一个应用“执行某项操作的意向”。可以将 intent 用于各种任务,今天使用的这个intent 用于启动另一个 Activity。
Intent 构造函数采用两个参数:
Context 是第一个参数(之所以使用 this 是因为 Activity 类是 Context 的子类)
应用组件的 Class,系统应将 Intent(在本例中,为应启动的 Activity)传递至该类。
在 MainActivity.java 中,添加 EXTRA_MESSAGE 常量和 sendMessage() 代码。
putExtra() 函数将 EditText 的值添加到 intent。Intent 能够以名为 extra 的键值对形式携带数据类型。这里设置的键是一个公共常量 EXTRA_MESSAGE,因为下一个 Activity 将使用该键来检索文本值。为 intent extra 定义键时最好使用应用的软件包名称作为前缀。这可以确保在应用与其他应用交互时这些键始终保持唯一。
public class MainActivity extends AppCompatActivity {
public static final String EXTRA_MESSAGE = "com.example.myfirstapp.MESSAGE";