學習記錄:
我們想要的效果是,彈出一個小小的消息框,幾秒鐘之後自動消失
新建一個基礎工程:
在MainActivity中添加如下內容:
package com.example.reactest;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
// 向下兼容的Activity 其中AppCompatActivity是Activity的子類 Activity是Android系統提供的一個活動基類
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
/*
* 加載一個佈局,傳入佈局ID R.layout.activity_main
*
* */
setContentView(R.layout.activity_main);
/*
* 通過button觸發Toast 通過onCreate方法中添加代碼
* 先通過findViewById() 獲得buttonPanel 這個元素實例 操作方式爲: findViewById(R.id.buttonPanel);
* 由於這個方法返回的是 view 對象,需要向下轉型成Button對象
* 向下轉型:向下轉型:子類引用指向父類對象 Father f1 = new Son(); // 這就叫 upcasting (向上轉型), 現在f1引用指向一個Son對象
* 向上轉型:父類引用指向子類對象 Son s1 = (Son) f1; // 這就叫 downcasting (向下轉型),現在f1還是指向Son對象
* */
Button button_Panel = (Button)findViewById(R.id.buttonPanel);
/*
* 用setOnClickListener() 給這個實例註冊監聽器 OnClickListener() 但是使用語句爲 View.OnClickListener()
* 爲什麼前面要加個View呢,原因就是後面的OnClickListener是個View類內部的接口,如果直接使用是找不到這個接口的。
* */
button_Panel.setOnClickListener(new View.OnClickListener() {
/*
* 監聽創建完成,點擊按鈕如果被監聽到就會執行 onClick() 方法,所以
* Toast的功能要在onClick()中寫.
* */
@Override
public void onClick(View v) {
/*
* 我們想要的效果是,彈出一個小小的消息框,幾秒鐘之後自動消失
* 構想:一個文本框,一個定時器,一個佈局位置.一個顯示方法
* 用靜態方法 makeText()創建一個 Toast對象,調用 show()將Toast顯示.
* 說明: makeText(參數一[Toast要求的上下文 ], 參數二[Toast顯示的文本內容], 參數三[Toast顯示的時長])
* 參數一: Context,由於i活動本身就是一個Context對象,因此直接傳入 MainActivity.this
* 參數二: 內容
* 參數三: 有兩個內置常量 Toast.LENGTH_SHORT Toast.LENGTH_LONG
*
* 引用結束之後記得用 show()方法顯示
* */
Toast.makeText(MainActivity.this,"你好啊",Toast.LENGTH_SHORT).show();
}
});
}
}
在佈局視圖下添加:
<?xml version="1.0" encoding="utf-8"?>
function(){ //交易槓桿 http://www.fx61.com/definitions/muniu/481.html
<androidx.constraintlayout.widget.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">
<!-- 只要創建任何資源都會在R文件中生成一個資源id
在引用佈局的時候會調用R.layout.(Activity)可以得到XXXX.xml佈局中的id,然後將這個值傳到setContentVies()方法即可-->
<!-- wrap_content 當前寬度只要剛好包含裏邊的內容就行-->
<!-- match_parent 當前元素和父元素一樣寬 相配,相稱 -->
<Button
android:id="@+id/buttonPanel"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="1"
tools:ignore="MissingConstraints" />
<!-- 通過button觸發Toast 通過onCreate方法中添加代碼-->
</androidx.constraintlayout.widget.ConstraintLayout>