1. 程式人生 > 實用技巧 >畢設記錄(二)

畢設記錄(二)

目錄

第一講課程記錄


一些老師的話在檔案中已經記錄,下面主要整理步驟

新建Button

在activity_main.xml中新建一個元件,同時解決了大寫問題(Mainfests中theme textALLCap)

<Button
        android:id="@+id/button1"
        android:text="Button"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        tools:ignore="MissingConstraints" />

元件一定有id,id在別的位置用來代替這個元件發現沒有最後一行會報錯?(視訊中沒有提到)

新建Toast(土司?)

(在button上)
點選button觸發事件用的是setOnClickListener()

public void initView(){
        button1 = findViewById(R.id.button1);
        //為按鈕新增監聽器
        button1.setOnClickListener(new View.OnClickListener() {//匿名的OnClickListener介面
            @Override
            public void onClick(View v) {//介面都是抽象類,實現介面要重寫介面中的抽象方法
                //onClick方法會在button1這個按鈕按下時自動被呼叫
                Toast.makeText(MainActivity.this, "Hello MainActivity", Toast.LENGTH_LONG).show();
                //上下文,顯示文字,顯示時長(long和short),一般用來顯示提示性文字
            }
        });
    }

具體在這一段可以看到。
(某些java基本知識要去補一下)

新建mune

在res資料夾下新建一個資料夾menu(名字必須是這個,一點都不能改)
在menu資料夾下新建一個Menu Resource File

每當新增一個新的元件(活動)都要在資源+活動中一起新增
因此,我們在menu.xml中新增

<item android:id="@+id/add_item" android:title="Add"/>
<item android:id="@+id/remove_item" android:title="Remove"/>

在MainActivity中新增

@Override
    public boolean onCreateOptionsMenu(Menu menu) {//一個重寫的方法,主要用來建立重寫的選單
        getMenuInflater().inflate(R.menu.menu,menu);//menuRes,menu,前面的是來源於的資源(我們建立的),後面是括號裡傳進來的引數
        //return super.onCreateOptionsMenu(menu);
        return true;//保證選項選單的順利建立
    }

可以通過直接Reply changes改變而不用直接執行(好像報錯?,亟待解決)

報錯提示:新增新方法需要重新啟動應用。

給OptionsMenu新增點選活動(顯示一個Toast)

在MainActivity中新增

@Override
    public boolean onOptionsItemSelected(@NonNull MenuItem item) {//當選項item被選中
        switch (item.getItemId()){//由於有多個item因此分支
            case R.id.add_item:
                Toast.makeText(this, "Add_item clicked", Toast.LENGTH_SHORT).show();
                break;
            case R.id.remove_item:
                Toast.makeText(this, "Remove_item clicked", Toast.LENGTH_SHORT).show();
                break;

        }
        return super.onOptionsItemSelected(item);
    }