Android基礎之介面跳轉

2020-09-23 12:00:58

佈局

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".MainActivity">

    <!--  線性佈局 、垂直排列 -->
    <LinearLayout
            android:orientation="vertical"
            android:layout_width="match_parent"
            android:layout_height="match_parent">
        <!--   編輯框   
			 @string/hint 表示 res/values/strings.xml下名為hint的標籤
             strings.xml用於字串資源及其格式化
      -->
        <EditText
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:inputType="textPersonName"
                android:text="Name"
                android:ems="10"
                android:id="@+id/input" android:hint="@string/hint"/>
        <Button
                android:text="@string/send"
                android:layout_width="match_parent"
                android:layout_height="wrap_content" android:id="@+id/button2" android:onClick="send"/>
    </LinearLayout>


</android.support.constraint.ConstraintLayout>

或者點選text左邊的design進行佈局

響應onclick

package com.android02;

import android.content.Intent;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.EditText;

public class MainActivity extends AppCompatActivity {

    //定義常數,作為訊息的key
    public final  static String MESSAGE_KEY="com.android2";

    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        /**
         * 指定佈局(res下的activity_main.xml編譯成r.java)
         */
        setContentView(R.layout.activity_main);
    }

    /**
     *響應onclick事件
     */
    public void send(View button){

        //以id獲取EditText
        EditText editText = findViewById(R.id.input);

        //獲取編輯框文字
        String message = editText.getText().toString();

		//activity、service和broadcast receiver通過Intent進行互動
        Intent intent = new Intent(this,ReceiveActivity.class);

        //在intent中附加資訊
        intent.putExtra(MESSAGE_KEY,message);
        startActivity(intent);
    }

}

建立ReceiveActivity

右擊java>>new>>Activity>>Empty Activity
然後進入建立頁面指定Activity的名字…
然後它在AndroidManifest.xml中自動註冊

package com.android02;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;

public class ReceiveActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_receive);

        //獲取intent參照
        Intent intent = getIntent();

        //以MESSAGE_KEY獲取獲取編輯框文字
        String message = intent.getStringExtra(MainActivity.MESSAGE_KEY);

        //以id獲取TextView
        TextView textView = findViewById(R.id.output);

        //顯示message
        textView.setText(message);

    }
}

測試

通過AVD manager 建立虛擬手機或使用真機測試

在這裡插入圖片描述
在這裡插入圖片描述

完成~