Android Studio|01. 主畫面切換子畫面

Kombayar
5 min readApr 3, 2020

--

Android Studio 初學
1.MainActivity主畫面,2. CalenderActivity子畫面,按下主畫面button將轉換到子畫面。

在MainActivity.java中輸入以下程式碼:

  1. 先定義Button物件:

(這裡是使用ImageButton)

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ImageButton calender = (ImageButton) findViewById(R.id.imageButton1);

Activity 提供 findViewById 方法,可以利用畫面上的袁建設定的 id 值取得元件,回傳型態為 View,經過轉換後可以得到元件原本的樣貌。

但是 calender 物件是在 onCreate 方法中宣告的區域變數,在 oncreate 方法外是無法被存取的,需要將這三個變數提升為類別變數。

Android Studio 提供快速重構功能,將 calender 選取後按下 : Ctrl + Alt + F,出現選單後按下 Enter,將會出現以現轉變。

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
calender = (ImageButton) findViewById(R.id.imageButton1);

當 onCreate 方法中,宣告太多變數,程式碼顯得雜亂,可以設計一個方法,將這些取得元件的程式碼移到另外一個方法中。

Android Studio 提供另一個快速將程式碼抽出成為方法的快捷鍵,將要抽出的程式碼選取,按下: Ctrl + Alt ++M ,在輸入方法名稱。

在Name : 輸入方法名稱。(元件宣告通常命名為 findView)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findView();
}
private void findView() {
calender = (ImageButton) findViewById(R.id.imageButton1);
training = (ImageButton) findViewById(R.id.imageButton2);
watch_boat = (ImageButton) findViewById(R.id.imageButton3);
note = (ImageButton) findViewById(R.id.imageButton4);
button4 = (ImageButton) findViewById(R.id.imageButton5);
button5 = (ImageButton) findViewById(R.id.imageButton6);
button6 = (ImageButton) findViewById(R.id.imageButton7);
button7 = (ImageButton) findViewById(R.id.imageButton8);
}

2. 使用 Intent 轉換 Activity:

Intent 代表使用者與應用程式的互動,例如按下圖示後撥話,或者按下按鈕切換到另一個畫面,使用 android.content.Intent 類別可以達到這些功能, Intent 類別用來轉換 Activity 的建構子如下,在 onCreate 方法中輸入以下程式碼。

calender.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent();
intent.setClass(MainActivity.this, CalenderActivity.class);
startActivity(intent);

}
});

3. 完成:

按下 Button,切換至另一個子畫面。

Thanks All !

--

--

Kombayar
Kombayar

Written by Kombayar

I’m a graduate student. Self-teaching coding on Internet, wanted to write some articles to make myself remember the code.

No responses yet