一、題外話:
創(chuàng)新互聯(lián)是一家朝氣蓬勃的網(wǎng)站建設(shè)公司。公司專注于為企業(yè)提供信息化建設(shè)解決方案。從事網(wǎng)站開發(fā),網(wǎng)站制作,網(wǎng)站設(shè)計(jì),網(wǎng)站模板,微信公眾號(hào)開發(fā),軟件開發(fā),成都小程序開發(fā),十載建站對(duì)成都電動(dòng)窗簾等多個(gè)領(lǐng)域,擁有豐富的網(wǎng)站維護(hù)經(jīng)驗(yàn)。本人java基礎(chǔ)很一般,學(xué)java的時(shí)候就寫了個(gè)notepad的demo,為了順應(yīng)時(shí)代的發(fā)展在去年10月份開始學(xué)習(xí)android,到現(xiàn)在中間漸漸續(xù)續(xù)的持續(xù)了將近5個(gè)月,剛開始我也是下了一堆a(bǔ)ndroid的視頻,很可惜只看了前2章老羅的視頻,工作的人了沒那么大的耐心和時(shí)間慢慢看下去,依照視頻和網(wǎng)上資料把a(bǔ)ndroid的開發(fā)環(huán)境搭起來(lái)了,android SDK+eclipse ,中間也嘗試了使用android studio ,但是一旦出了問題,查找的資料相對(duì)Eclipse要少很多,所以對(duì)于初學(xué)者建議還是用Eclipse~沒有多少基礎(chǔ),也不想慢慢看視頻,直接就進(jìn)入實(shí)操,期間困難在所難免,但堅(jiān)持下來(lái)收獲也是非常明顯的了,現(xiàn)在我就分享下整個(gè)開發(fā)過程,當(dāng)然也會(huì)包括代碼分享~讓其他正在步入android門檻的童鞋可以有個(gè)借鑒,減少?gòu)澛穨
二、進(jìn)入正題:
記賬應(yīng)用的開發(fā)涉及絕大多數(shù)android的UI和sqlite數(shù)據(jù)庫(kù)等操作,很適合作為初學(xué)者練手,下面是我最開始的設(shè)計(jì)思路:
后面在開發(fā)過程中有修改,還是直接來(lái)干貨,我就按照我的開發(fā)順序來(lái)依次介紹,首先是登錄界面的功能:UI中運(yùn)用了LinearLayout+RelativeLayout組合布局的使用,期間有各種屬性的使用,寫一個(gè)這樣的界面就可以了解很多UI的屬性了。
效果如下圖:
xml源碼:
" "
程序代碼:
由于這里面程序代碼無(wú)非就是一些判斷控制,這里就只上傳保存按鈕的代碼……
btnlogin.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { if (uname!="" && uname!=null) { if (rememberPwd.equals("true")) { if (evUsername.getText().toString().trim().length()>0) { if (evUsername.getText().toString().trim().equals(uname)) { Toast.makeText(Login.this,"登錄成功",Toast.LENGTH_SHORT).show(); Intent intent =new Intent(Login.this,MainActivity.class); startActivity(intent); intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY); finish(); ((NotifyApplication)getApplication()).intLoginStatus=1;//登錄激活 ((NotifyApplication)getApplication()).strUsername = uname; }else { Toast.makeText(Login.this,"用戶名不正確",Toast.LENGTH_SHORT).show(); evUsername.setText(""); evUsername.requestFocus(); } }else { Toast.makeText(Login.this,"用戶名不能為空",Toast.LENGTH_SHORT).show(); evUsername.requestFocus(); } }else { if (evUsername.getText().toString().trim().length()>0) { if (evPwd.getText().toString().trim().length()>5) { if (evUsername.getText().toString().trim().equals(uname)) { if (evPwd.getText().toString().equals(pwd)) { Toast.makeText(Login.this,"登錄成功",Toast.LENGTH_SHORT).show(); Intent intent =new Intent(Login.this,MainActivity.class); startActivity(intent); intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY); finish(); ((NotifyApplication)getApplication()).intLoginStatus=1;//登錄激活 ((NotifyApplication)getApplication()).strUsername = uname; }else { Toast.makeText(Login.this,"密碼不正確",Toast.LENGTH_SHORT).show(); evPwd.setText(""); evPwd.requestFocus(); } }else { Toast.makeText(Login.this,"用戶名不正確",Toast.LENGTH_SHORT).show(); evUsername.setText(""); evUsername.requestFocus(); } }else { Toast.makeText(Login.this,"密碼長(zhǎng)度至少為6",Toast.LENGTH_SHORT).show(); evPwd.setText(""); evPwd.requestFocus(); } }else { Toast.makeText(Login.this,"用戶名不能為空",Toast.LENGTH_SHORT).show(); evUsername.requestFocus(); } } }else { Toast.makeText(Login.this,"您還未注冊(cè),請(qǐng)點(diǎn)擊下方注冊(cè)",Toast.LENGTH_SHORT).show(); } } });
在現(xiàn)在看來(lái)這個(gè)頁(yè)面有難度的地方,就是“注冊(cè)”標(biāo)簽的點(diǎn)擊鏈接功能的實(shí)現(xiàn),需要用到SpannableString 這個(gè)類,實(shí)現(xiàn)該處具體源碼如下:
txtRegisterLink=(TextView)findViewById(R.id.txtRegisterLink); String str2="注冊(cè)"; SpannableString spans = new SpannableString(str2); //點(diǎn)擊文本鏈接事件 spans.setSpan(new ClickableSpan() { @Override public void onClick(View widget) { if (uname==null || uname=="") { Intent intent = new Intent(Login.this, Register.class); startActivity(intent); finish(); }else{ Toast.makeText(Login.this,"您已注冊(cè),不能重復(fù)注冊(cè)",Toast.LENGTH_SHORT).show(); } } }, 0, str2.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); txtRegisterLink.setText(spans);
接著寫~~~
有用戶登錄界面,當(dāng)然就需要用戶注冊(cè)界面了,上面也有貼出在用戶登錄界面通過link調(diào)轉(zhuǎn)到注冊(cè)界面的代碼,下面就直接說(shuō)注冊(cè)界面的功能點(diǎn):
效果圖:
注冊(cè)界面的xml代碼:
注冊(cè)界面的UI很簡(jiǎn)單了,還是基礎(chǔ)控件的使用,當(dāng)然UI上面的實(shí)現(xiàn)方式很多,初學(xué)時(shí)根據(jù)自己的需要和熟悉程度選擇就好……
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。