论文的第一天

害,就装个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";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
    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);
    }
}

startActivity() 函数将启动 Intent 指定的 DisplayMessageActivity 实例。现在,需要创建该类。
如果Android Studio 再次遇到 Cannot resolve symbol 错误,可以按 Alt + Enter解决。

三、创建第二个 Activity

1 .在 Project 窗口中,右键点击 app 文件夹并选择 New > Activity > Empty Activity。
2.在 Configure Activity 窗口中,为 Activity Name输入“Display Message Activity”,然后点击 Finish(保留所有其他属性设置为默认值)。ps:为了排版在加了三个空个。

Android Studio 会自动执行三项操作:
创建 DisplayMessageActivity.java 文件。
创建对应的 activity_display_message.xml 布局文件。
在 AndroidManifest.xml 中添加必需的 元素。
在这里插入图片描述
如果运行应用并在第一个 Activity 上点按按钮,将启动第二个 Activity,但它为空。这是因为第二个 Activity 使用模板提供的空布局。

四、添加文本视图

新 Activity 包括一个空白的布局文件,因此,现在需要在消息将要显示的位置添加一个文本视图。
打开文件 app > res > layout > activity_display_message.xml。
点击工具栏中的 Turn On Autoconnect (Autoconnect 随后应启用,如图 所示)。
就是图中的U性磁铁
在 Palette 窗口中,点击 Text,然后将 TextView 拖动到布局中 - 将其放置在靠近布局顶部中心的位置,使其吸附到出现的垂直线上。Autoconnect 将添加左侧和右侧约束条件,在水平中心放置视图。
再从文本视图的顶部创建一个约束条件,将其限制在布局顶部。
也可以在 Attributes 窗口中展开 textAppearance 并更改属性(例如 textSize 和 textColor),对文本样式进行一些调整。

五、显示消息

现在,将修改第二个 Activity,以显示第一个 Activity 传递的消息。
1.在 DisplayMessageActivity.java 中,向 onCreate() 函数添加下列代码:

public class DisplayMessageActivity2 extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_display_message2);
        // Get the Intent that started this activity and extract the string
        Intent intent = getIntent();
        String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE);

        // Capture the layout's TextView and set the string as its text
        TextView textView = findViewById(R.id.textView);
        textView.setText(message);
    }
}

2.同样的按 Alt + Enter导入缺少的类。

六、添加向上导航

由于应用中不是主入口的每个屏幕(所有不是主屏幕的屏幕)都应提供导航,以便用户在应用栏中点按“向上”按钮后可以返回应用层次结构中的逻辑父屏幕。

所以需要做的全部工作是在 AndroidManifest.xml 文件中声明哪个 Activity 是逻辑父项。因此,打开 app > manifests > AndroidManifest.xml 处的文件,找到 DisplayMessageActivity 的 标记,然后将其替换为以下代码:

<activity android:name=".DisplayMessageActivity2"
            android:parentActivityName=".MainActivity" >
            <!-- The meta-data tag is required if you support API level 15 and lower -->
            <meta-data
                android:name="android.support.PARENT_ACTIVITY"
                android:value=".MainActivity" />
</activity>

Android 系统现在会在应用栏中自动添加“向上”按钮。
运行应用
现在,点击工具栏中的 Apply Changes,再次运行应用 。当应用打开后,在文本字段中键入一条消息,点按 Send 以在第二个 Activity 中查看显示的消息。
在这里插入图片描述
在这里插入图片描述

参考原文链接:https://blog.csdn.net/gumufuyun/article/details/83032066
http://hukai.me/android-training-course-in-chinese/basics/firstapp/starting-activity.html

发布了2 篇原创文章 · 获赞 2 · 访问量 94

猜你喜欢

转载自blog.csdn.net/weixin_43976418/article/details/104449578
今日推荐