您好,登錄后才能下訂單哦!
學習記錄:
我們想要的效果是,彈出一個小小的消息框,幾秒鐘之后自動消失
新建一個基礎工程:
在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>
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。