iT邦幫忙

2023 iThome 鐵人賽

DAY 26
0
Mobile Development

Android Studio開發系列 第 26

【DAY 26】元件整合實作:製作一個簡易的氣象資訊系統-2-登入及註冊按鈕功能

  • 分享至 

  • xImage
  •  

承接上篇,我們來加入按鈕的功能,先從登入頁面開始。

登入頁面有三個按鈕:清除、登入及註冊,其中清除最簡單,只需將帳號輸入框與密碼輸入框的內容設為空的就好。

清除按鈕:

btClear.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        //將帳號密碼設為空字串
        tvEmail.setText("");
        tvPass.setText("");
    }
});

接下來是註冊按鈕,我們將其設定為按下後跳轉至註冊頁面。
註冊按鈕:

btEnroll.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        //跳轉頁面至註冊頁面
        Intent intent = new Intent();
        intent.setClass(login.this, enroll.class);
        startActivity(intent);
    }
});

再來是登入按鈕,我們需要利用SharedPreferences判斷輸入的帳號密碼是否與註冊的帳號密碼一致,是則跳轉至主畫面,這裡先不加SharedPreferences的部分。
登入按鈕:

btLogin.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        Toast.makeText(login.this, "登入成功!", Toast.LENGTH_SHORT).show();
        Intent intent = new Intent();
        intent.setClass(login.this, MainActivity.class);
        startActivity(intent);
    }
});

完成後:


接下來,我們做註冊頁面的按鈕,註冊頁面有三個按鈕:驗證密碼、取消註冊及註冊完成,及一個勾選框。我們先從最簡單的取消註冊開始,設定當按鈕按下則結束這個頁面。
取消註冊:

btCancel.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        finish();
    }
});

再來我們做註冊完成按鈕,當它被按下時利用SharedPreferences送出資料,並結束這個頁面,這裡先不加SharedPreferences的部分。
註冊完成:

btSent.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        finish();
    }
});

接著我們做驗證密碼,當它被按下時,判斷輸入的帳號密碼是否符合要求,如果是則開啟下方的勾選框,不是則清除密碼欄位。
驗證密碼:

btPass.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        if(tveEmail.getText().toString().equals(""))
        {
            Toast.makeText(enroll.this, "請輸入帳號", Toast.LENGTH_SHORT).show();
        }
        else
        {
            if(tvePass.getText().toString().equals(""))
            {
                Toast.makeText(enroll.this, "請輸入密碼", Toast.LENGTH_SHORT).show();
            }
            else
            {
                if(tvePass.getText().toString().equals(tvePass2.getText().toString()))
                {
                    checkBox.setEnabled(true);
                    Toast.makeText(enroll.this, "密碼驗證成功!", Toast.LENGTH_SHORT).show();
                }
                else
                {
                    Toast.makeText(enroll.this, "密碼驗證失敗,請輸入相同之密碼", Toast.LENGTH_SHORT).show();
                    tvePass2.setText("");
                    checkBox.setEnabled(false);
                    checkBox.setChecked(false);
                }
            }
        }
    }
});

最後我們做勾選框的部分,當勾選時,才開啟下方註冊完成按鈕功能,否則關閉。
勾選框:

checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
    @Override
    public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
        btSent.setEnabled(b);
    }
});

完成後:

到這裡就把按鈕功能做齊全了,下一篇文我們來把資料透過SharedPreferences做設定及抓取~~


上一篇
【DAY 25】元件整合實作:製作一個簡易的氣象資訊系統-1-登入頁面及註冊頁面
下一篇
【DAY 27】元件整合實作:製作一個簡易的氣象資訊系統-3-透過SharedPreferences傳送註冊資料
系列文
Android Studio開發30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言