android實(shí)現(xiàn)簡(jiǎn)易登錄注冊(cè)界面及邏輯設(shè)計(jì)
本文實(shí)例為大家分享了android實(shí)現(xiàn)登錄注冊(cè)界面及邏輯設(shè)計(jì),供大家參考,具體內(nèi)容如下
1. 第一步 新建文件(相信各位碼農(nóng)一定會(huì)這一步)略。
2. 第二步 登錄注冊(cè)界面設(shè)計(jì)
登錄界面主要包括幾大控件,如登錄、注冊(cè)按鈕,賬號(hào)(Button)、密碼輸入框(Editext)、復(fù)選框等??梢岳胹hape參數(shù)對(duì)控件進(jìn)行美化。界面設(shè)計(jì)可以線性布局嵌套使用,這樣可以很好的對(duì)控件調(diào)整,美化界面。
注冊(cè)界面主要包括EdiText、Radio button、button、checkbox等,與登錄界面相同,可以利用shape參數(shù)改變編輯框的顏色和邊角,使得界面簡(jiǎn)潔而美化。
效果如下:

3. 第三步 注冊(cè)界面邏輯設(shè)計(jì)
注冊(cè)界面的邏輯功能為將注冊(cè)的信息返回給登錄界面(以及存入數(shù)據(jù)庫(kù)),邏輯設(shè)計(jì)如下:
public class RegisterActivity extends AppCompatActivity {
private String sex, infor;
@Override
protected void onCreate(Bundle saveInstanceState) {
super.onCreate(saveInstanceState);
setContentView(R.layout.activity_main2);
/**
*獲取控件的id
**/
RadioGroup gender = (RadioGroup) findViewById(R.id.group);
final RadioButton male = (RadioButton) findViewById(R.id.radioButton);
final RadioButton female = (RadioButton) findViewById(R.id.radioButton2);
final Spinner spinner = (Spinner) findViewById(R.id.spinner);
final CheckBox c1 = (CheckBox) findViewById(R.id.checkBox);
final CheckBox c2 = (CheckBox) findViewById(R.id.checkBox2);
final CheckBox c3 = (CheckBox) findViewById(R.id.checkBox3);
final CheckBox c4 = (CheckBox) findViewById(R.id.checkBox4);
Button button1 = (Button) findViewById(R.id.but);
/**
* 獲取checkbox里勾選的性別
**/
gender.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
if (checkedId == male.getId()) {
sex = male.getText().toString();
} else {
sex = female.getText().toString();
}
}
});
/**
* 設(shè)置注冊(cè)按鈕的事件監(jiān)聽器,實(shí)現(xiàn)從注冊(cè)界面到登錄界面的跳轉(zhuǎn)
**/
Button buttton1 = (Button) findViewById(R.id.but);
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
/**
* 將checkbox里的選中的值賦給hobby
**/
String hobby = " ";
if (c1.isChecked()) {
hobby += c1.getText().toString();
}
if (c2.isChecked()) {
hobby += c2.getText().toString();
}
if (c3.isChecked()) {
hobby += c3.getText().toString();
}
if (c4.isChecked()) {
hobby += c4.getText().toString();
}
/**
* 將Spinner里的值賦給spin,將所有的信息法如infor中
**/
String spin = spinner.getSelectedItem().toString();
String site1 = ((EditText) findViewById(R.id.username1)).getText().toString();
String site2 = ((EditText) findViewById(R.id.password1)).getText().toString();
String site3 = ((EditText) findViewById(R.id.password2)).getText().toString();
infor = "用戶:" + site1 + "\n性別:" + sex + "\n學(xué)歷:" + spin + "\n愛好:" + hobby;
/**
* 判斷編輯框內(nèi)容是否為空
**/
if (!"".equals(site1) && !"".equals(site2) && !"".equals(site3)) {
Toast.makeText(Main2Activity.this, infor, Toast.LENGTH_LONG).show();
if (site2.equals(site3)) {
Intent intent = new Intent(RegisterActivity.this, MainActivity.class);
/**
* 將注冊(cè)的信息打包,通過intent傳給登錄程序
**/
Bundle bundle = new Bundle();
bundle.putCharSequence("site1", site1);
bundle.putCharSequence("site2", site2);
bundle.putCharSequence("site3", site3);
bundle.putCharSequence("infor", infor);
intent.putExtras(bundle);
setResult(0x11, intent);
finish();
} else {
Toast.makeText(Main2Activity.this, "請(qǐng)確認(rèn)密碼一致", Toast.LENGTH_SHORT).show();
}
} else {
Toast.makeText(Main2Activity.this, "請(qǐng)將信息填寫完整", Toast.LENGTH_SHORT).show();
}
}
});
}
}
4. 第四步 登錄界面邏輯設(shè)計(jì)
登錄面的邏輯功能主要是獲取注冊(cè)界面返回的信息并填入編輯框,和將賬號(hào)密碼進(jìn)行匹配,實(shí)現(xiàn)登錄功能;
public class MainActivity extends AppCompatActivity {
/**
* 將注冊(cè)界面返回的賬號(hào)密碼填入編輯框
**/
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 0x11 && resultCode == 0x11) {
Bundle bundle = data.getExtras();
String username = bundle.getString("site1");
String password = bundle.getString("site2");
String information=bundle.getString("infor");
EditText et_username = (EditText) findViewById(R.id.username);
EditText et_password = (EditText) findViewById(R.id.password);
et_username.setText(username);
et_password.setText(password);
}
}
@Override
protected void onCreate(Bundle saveInstanceState) {
super.onCreate(saveInstanceState);
setContentView(R.layout.activity_main);
Button login = (Button) findViewById(R.id.login);
final EditText ET_username = (EditText) findViewById(R.id.username);
final EditText ET_password = (EditText) findViewById(R.id.password);
Button btn = (Button) findViewById(R.id.btn);
/**
* 給登錄按鈕設(shè)置單擊事件監(jiān)聽器
**/
login.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String inusername = ET_username.getText().toString();
String inpassword = ET_password.getText().toString();
if (inusername != null && inpassword != null) {
if (inusername.equals("admin") && inpassword.equals("admin")){
Intent intent = new Intent(MainActivity.this, SuccessActivity.class);
startActivity(intent);
} else {
new AlertDialog.Builder(MainActivity.this).setTitle("登陸信息有誤").setMessage("請(qǐng)輸入正確的賬戶名與密碼")
.setPositiveButton("確定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
}
}).show();
}
}
else {
Toast.makeText(MainActivity.this, "請(qǐng)輸入用戶名和密碼", Toast.LENGTH_SHORT).show();
}
}
});
/**
* 為注冊(cè)按鈕設(shè)置單機(jī)事件監(jiān)聽器
**/
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(MainActivity.this, RegisterActivity.class);
startActivityForResult(intent, 0x11);
}
});
}
}
*5. 第五步 完善工作
具體的簡(jiǎn)易登錄注冊(cè)邏輯代碼完成,接下來就可以為其設(shè)計(jì)啟動(dòng)界面和登錄成功界面,注意:Activity組件需要在Mainfest文件里注冊(cè)。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Android自定義一個(gè)圖形單點(diǎn)移動(dòng)縮小的效果
本文通過實(shí)例代碼給大家介紹了android 自定義圖形單點(diǎn)移動(dòng)縮小效果,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有參考借鑒價(jià)值,需要的的朋友參考下吧2017-08-08
Libgdx解決部分Android機(jī)型鎖屏崩潰的方法
今天小編就為大家分享一篇關(guān)于Libgdx解決部分Android機(jī)型鎖屏崩潰的方法,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2018-10-10
詳解RxJava2 Retrofit2 網(wǎng)絡(luò)框架簡(jiǎn)潔輕便封裝
本篇文章主要介紹了詳解RxJava2 Retrofit2 網(wǎng)絡(luò)框架簡(jiǎn)潔輕便封裝,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-12-12
Android實(shí)現(xiàn)文字垂直滾動(dòng)、縱向走馬燈效果的實(shí)現(xiàn)方式匯總
本文給大家分享了三種方式實(shí)現(xiàn)Android文字垂直滾動(dòng)、縱向走馬燈效果,文中給大家介紹了相關(guān)屬性及注意事項(xiàng),需要的朋友參考下吧2017-12-12
簡(jiǎn)單實(shí)現(xiàn)Android驗(yàn)證碼
在登錄或者注冊(cè)的時(shí)候要求輸入驗(yàn)證碼,這篇文章主要為大家詳細(xì)介紹了如何簡(jiǎn)單實(shí)現(xiàn)Android驗(yàn)證碼的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-12-12
Android實(shí)現(xiàn)錄音監(jiān)聽動(dòng)畫的示例代碼
在很多app種內(nèi)置了語(yǔ)音助手,也存在各種動(dòng)畫,這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)錄音監(jiān)聽動(dòng)畫的示例代碼,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-12-12
Android Http協(xié)議訪問網(wǎng)絡(luò)實(shí)例(3種)
本篇文章主要介紹了Android Http協(xié)議訪問網(wǎng)絡(luò)實(shí)例(3種),具有一定的參考價(jià)值,有興趣的可以了解一下2017-07-07
Android SQLite數(shù)據(jù)庫(kù)連接實(shí)現(xiàn)登錄功能
這篇文章主要為大家詳細(xì)介紹了Android SQLite數(shù)據(jù)庫(kù)連接實(shí)現(xiàn)登錄功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-10-10

