iT邦幫忙

2025 iThome 鐵人賽

DAY 15
0
Mobile Development

結合AI Agent技術打造自己的行程管家系列 第 15

Day15 行程管家的外貌:讓登入介面動起來(上)

  • 分享至 

  • xImage
  •  

在上一篇文章中,我們已經完整打造了登入介面的 UI 外觀,從輸入框到按鈕配置,讓行程管家有了一個初步的門面。
然而,只有「外觀」還不夠,真正能夠帶給使用者良好體驗的,還是 背後穩定又靈活的功能實作。

因此,今天我們將正式進入程式碼撰寫的部分,為登入介面加上 互動邏輯,並且透過 MVP 架構 讓程式碼維持乾淨、清晰且容易維護。
以下是我們設計好的 LoginActivity.java 程式碼,這個類別主要承擔了 View 的角色,負責 UI 與使用者互動:

以下是我們設計好的 activity_login.java 程式碼:

ublic class LoginActivity extends AppCompatActivity implements LoginContract.View {
    private EditText ed_email, ed_password;
    private Button login_btn, register_btn;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.login_activity_main);
        loginPresenter = new LoginPresenter(this);
        sdP = new SharedPreferencesHelper(this);


       ed_email = findViewById(R.id.login_editTextTextEmailAddress);
       ed_password = findViewById(R.id.login_editTextTextPassword);
       login_btn = findViewById(R.id.login_button_in);
       register_btn = findViewById(R.id.login_button_rest);
       

            login_btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                String email = ed_email.getText().toString().trim();
                String password = ed_password.getText().toString().trim();

                if (!email.isEmpty() && !password.isEmpty()) {
                    loginPresenter.getLogin(email, password);

                }
                else {
                    showDialog("請輸入帳號和密碼");
                }

            }
            });


            register_btn.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {Intent intent = new Intent();
                    intent.setClass(LoginActivity.this, RegisterActivity.class);
                    startActivity(intent);
                }
            });
            }

            @Override
            public void LoginSuccess() {
                sdP.setEmail_key(ed_email.getText().toString());
                sdP.setPassword_key(ed_password.getText().toString());
                Intent intent = new Intent();
                intent.setClass(LoginActivity.this, MainActivity.class);
                startActivity(intent);

            }
            @Override
            public void LoginError() {
                showDialog("登入失敗");
            }
            @Override
            public void showDialog(String message) {
                new AlertDialog.Builder(this)
                .setTitle("錯誤")
                .setMessage(message)
                .setPositiveButton("確定", null)
                .show();

    }

}

在下一篇中,我將帶領大家繼續展開前端之行,深入探討登入介面 MVP 架構中的另外兩個部分:LoginContract 與 LoginPresenter 的程式碼撰寫。


上一篇
Day14 行程管家的外貌:行程啟程之前的入口——登入介面
系列文
結合AI Agent技術打造自己的行程管家15
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言