Android開發(fā)自學(xué)筆記(五):使用代碼控制界面
酷酷的外表已經(jīng)具備了,那就開始讓我們真正把它的功能給實(shí)現(xiàn)起來(lái)吧,外強(qiáng)中干,花拳繡腿可不行哦,我們需要真正的本領(lǐng),需要一顆自強(qiáng)不息的心哦,常常想想自己的夢(mèng)想什么,這樣才不會(huì)迷失自己,才會(huì)在茫茫的世界中找到自己前進(jìn)的方向!我不會(huì)告訴你我剛看過(guò)《voice of China session 3》哦。
從上兩節(jié)教程中,我們已經(jīng)會(huì)搭出如下美美的布局了,歡迎翻頁(yè)查閱:)
Android自學(xué)開發(fā)第四篇之布局上
Android自學(xué)開發(fā)第五篇之布局下
添加第二個(gè)layout
關(guān)于layout布局我們不再贅述,這里再額外添加一個(gè)layout頁(yè)面用來(lái)顯示搜索結(jié)果的,我們依然選擇LinearLayout,這個(gè)layout同樣是ViewGroup的實(shí)例化,我們?cè)诶锩嫣砑右粋€(gè)View用來(lái)顯示結(jié)果,這個(gè)View為WebView。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal"> <WebView android:id="@+id/wv_result" android:layout_width="match_parent" android:layout_height="match_parent" /> </LinearLayout>
并定義WebView的id為wv_result,OK,這個(gè)layout我們姑且把它叫做show_result.xml,這個(gè)頁(yè)面就是如此之簡(jiǎn)單。
添加MyActivity的code
接下來(lái)好戲就要來(lái)了,先看看文件結(jié)構(gòu)吧,不然紙上空談兵,我自己都受不了。
這個(gè)MyActivity是我從創(chuàng)建這個(gè)HelloAndroid工程中默認(rèn)生成的Activity修改而來(lái)的,這個(gè)無(wú)所謂叫什么名字,我們先打開它,還記得我們?cè)?jīng)把這張Activity綁定了search這個(gè)layout了嗎?先簡(jiǎn)單介紹下每個(gè)Activity都有多個(gè)回調(diào)函數(shù)(即on打頭的onXXX系列函數(shù)),其中有onCreate,onStart,onResume,onStop等,這些函數(shù)描述了這張Activity的生命周期(life-cycle),這個(gè)很重要回頭我會(huì)詳細(xì)給自己做一個(gè)review,我們需要做的是在onCreate中添加自己的代碼,這個(gè)函數(shù)是MyActivity一打開就運(yùn)行的。
我打算在MyActivity的這個(gè)onCreate函數(shù)添加三句代碼。
setContentView我們先暫時(shí)理解為綁定函數(shù),我們綁定了search這個(gè)layout。
setup是我自己創(chuàng)建的函數(shù),主要作用是為綁定及初始化search這個(gè)layout的各個(gè)View以及為它們綁定監(jiān)聽事件。
getResult同樣為我自己創(chuàng)建的,主要用來(lái)傳遞點(diǎn)擊事件信息及獲取搜索結(jié)果。
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.search); setup(); getResult(); }
setup函數(shù)如下
public void setup() { mSearchBtn = (Button) findViewById(R.id.btn_search); mEnterEditText = (EditText) findViewById(R.id.edit_message); }
這個(gè)setup很簡(jiǎn)單及獲取search中的搜索按鈕及搜索框。
getResult函數(shù)如下
public void getResult() { mSearchBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { //To change body of implemented methods use File | Settings | File Templates. String enterContent = mEnterEditText.getText().toString(); Intent in = new Intent(MyActivity.this, ResultActivity.class); in.putExtra(EXTRA_MESSAGE, enterContent); startActivity(in); } }); }
getResult函數(shù)為搜索按鈕綁定了點(diǎn)擊事情的Listener(監(jiān)X器),一旦用戶點(diǎn)擊這個(gè)搜索按鈕,我們動(dòng)作為獲取搜索框的內(nèi)容并封裝到EXTRA_MESSAGE中去,然后將這個(gè)EXTRA_MESSAGE附加到Intent中,并使用startActivity函數(shù)調(diào)出搜索結(jié)果頁(yè)面。
添加搜索結(jié)果的code
搜索結(jié)果的動(dòng)作我們也已經(jīng)準(zhǔn)備好了,我們一開始就準(zhǔn)備的show_result.xml就是要為它服務(wù)的,現(xiàn)在我們定一個(gè)另外一個(gè)Activity,名字為ResultActivity。
這個(gè)ResultActivity需要做的事情很簡(jiǎn)單:
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.show_result); mWebView = (WebView)findViewById(R.id.wv_result); Intent in = getIntent(); String message = in.getStringExtra(MyActivity.EXTRA_MESSAGE); mWebView.loadUrl("http://www.baidu.com.cn/s?wd=" + message); }
同樣我們?cè)趏nCreate函數(shù)中完成WebView的綁定,并從上一個(gè)Activity(即MyActivity)中的 Intent獲取EXTRA_MESSAGE的值,并調(diào)用百度的接口,打開就可以。
比如搜索ourunix,并點(diǎn)擊搜索按鈕就會(huì)出現(xiàn)如下頁(yè)面:
我在這一篇文章中并沒有過(guò)分強(qiáng)調(diào)Android的四大組件之一的Activity的生命周期以及組件及組件的粘合的Intent,本篇文章主要讓初學(xué)者能夠盡快上手Android,并體驗(yàn)到Android開發(fā)的簡(jiǎn)單容易,關(guān)于Activity的生命周期以及其他組件我會(huì)在后面一一講解。
相關(guān)文章
Android仿微博個(gè)人詳情頁(yè)滾動(dòng)到頂部的實(shí)例代碼
這篇文章主要介紹了Android仿微博個(gè)人詳情頁(yè)滾動(dòng)到頂部的實(shí)例代碼,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒家,需要的朋友可以參考下2019-05-05Android中AutoCompleteTextView自動(dòng)提示
這篇文章主要為大家詳細(xì)介紹了Android中AutoCompleteTextView自動(dòng)提示的實(shí)現(xiàn)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-12-12Android 6.0權(quán)限請(qǐng)求相關(guān)及權(quán)限分組方法
今天小編就為大家分享一篇Android 6.0權(quán)限請(qǐng)求相關(guān)及權(quán)限分組方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-08-08c++ mk文件出錯(cuò)Jni調(diào)用產(chǎn)生java.lang.UnsatisfiedLinkError錯(cuò)誤解決方法
錯(cuò)誤產(chǎn)生在我把方法從c語(yǔ)言轉(zhuǎn)為c++語(yǔ)言后產(chǎn)生的,后來(lái)檢查到這種錯(cuò)誤是因?yàn)閙k文件出錯(cuò),加載c文件和加載c++的文件所用的代碼不一樣,下面請(qǐng)看2013-11-11Android刮刮卡實(shí)現(xiàn)原理與代碼講解
這篇文章主要為大家詳細(xì)介紹了Android刮刮卡實(shí)現(xiàn)原理、實(shí)現(xiàn)原理步驟以及代碼講解,感興趣的小伙伴們可以參考一下2016-04-04Android五種隱藏狀態(tài)欄和標(biāo)題欄的方法
這篇文章主要介紹了Android五種隱藏狀態(tài)欄和標(biāo)題欄的方法的相關(guān)資料,需要的朋友可以參考下2017-05-05Android實(shí)現(xiàn)隨手指移動(dòng)小球
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)隨手指移動(dòng)小球,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-08-08