Android開發(fā)自學(xué)筆記(五):使用代碼控制界面
酷酷的外表已經(jīng)具備了,那就開始讓我們真正把它的功能給實(shí)現(xiàn)起來吧,外強(qiáng)中干,花拳繡腿可不行哦,我們需要真正的本領(lǐng),需要一顆自強(qiáng)不息的心哦,常常想想自己的夢想什么,這樣才不會迷失自己,才會在茫茫的世界中找到自己前進(jìn)的方向!我不會告訴你我剛看過《voice of China session 3》哦。
從上兩節(jié)教程中,我們已經(jīng)會搭出如下美美的布局了,歡迎翻頁查閱:)
Android自學(xué)開發(fā)第四篇之布局上
Android自學(xué)開發(fā)第五篇之布局下
添加第二個layout
關(guān)于layout布局我們不再贅述,這里再額外添加一個layout頁面用來顯示搜索結(jié)果的,我們依然選擇LinearLayout,這個layout同樣是ViewGroup的實(shí)例化,我們在里面添加一個View用來顯示結(jié)果,這個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,這個layout我們姑且把它叫做show_result.xml,這個頁面就是如此之簡單。
添加MyActivity的code
接下來好戲就要來了,先看看文件結(jié)構(gòu)吧,不然紙上空談兵,我自己都受不了。
這個MyActivity是我從創(chuàng)建這個HelloAndroid工程中默認(rèn)生成的Activity修改而來的,這個無所謂叫什么名字,我們先打開它,還記得我們曾經(jīng)把這張Activity綁定了search這個layout了嗎?先簡單介紹下每個Activity都有多個回調(diào)函數(shù)(即on打頭的onXXX系列函數(shù)),其中有onCreate,onStart,onResume,onStop等,這些函數(shù)描述了這張Activity的生命周期(life-cycle),這個很重要回頭我會詳細(xì)給自己做一個review,我們需要做的是在onCreate中添加自己的代碼,這個函數(shù)是MyActivity一打開就運(yùn)行的。
我打算在MyActivity的這個onCreate函數(shù)添加三句代碼。
setContentView我們先暫時理解為綁定函數(shù),我們綁定了search這個layout。
setup是我自己創(chuàng)建的函數(shù),主要作用是為綁定及初始化search這個layout的各個View以及為它們綁定監(jiān)聽事件。
getResult同樣為我自己創(chuàng)建的,主要用來傳遞點(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);
}
這個setup很簡單及獲取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)擊這個搜索按鈕,我們動作為獲取搜索框的內(nèi)容并封裝到EXTRA_MESSAGE中去,然后將這個EXTRA_MESSAGE附加到Intent中,并使用startActivity函數(shù)調(diào)出搜索結(jié)果頁面。
添加搜索結(jié)果的code
搜索結(jié)果的動作我們也已經(jīng)準(zhǔn)備好了,我們一開始就準(zhǔn)備的show_result.xml就是要為它服務(wù)的,現(xiàn)在我們定一個另外一個Activity,名字為ResultActivity。
這個ResultActivity需要做的事情很簡單:
@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);
}
同樣我們在onCreate函數(shù)中完成WebView的綁定,并從上一個Activity(即MyActivity)中的 Intent獲取EXTRA_MESSAGE的值,并調(diào)用百度的接口,打開就可以。

比如搜索ourunix,并點(diǎn)擊搜索按鈕就會出現(xiàn)如下頁面:

我在這一篇文章中并沒有過分強(qiáng)調(diào)Android的四大組件之一的Activity的生命周期以及組件及組件的粘合的Intent,本篇文章主要讓初學(xué)者能夠盡快上手Android,并體驗到Android開發(fā)的簡單容易,關(guān)于Activity的生命周期以及其他組件我會在后面一一講解。
相關(guān)文章
Android開發(fā)之完成登陸界面的數(shù)據(jù)保存回顯操作實(shí)例
這篇文章主要介紹了Android開發(fā)之完成登陸界面的數(shù)據(jù)保存回顯操作實(shí)現(xiàn)方法,結(jié)合完整實(shí)例形式較為詳細(xì)的分析了Android針對登錄數(shù)據(jù)的保存及回顯操作技巧,需要的朋友可以參考下2015-12-12
Android語音識別技術(shù)詳解及實(shí)例代碼
這篇文章主要介紹了Android語音識別技術(shù)的相關(guān)資料,并附實(shí)例代碼及實(shí)例實(shí)現(xiàn)效果圖,需要的朋友可以參考下2016-09-09
Android打空包后提示沒有"android:exported"的屬性設(shè)置問題解決
這篇文章主要介紹了Android打空包后提示沒有"android:exported"的屬性設(shè)置問題的解決方法,文中通過圖文將解決的辦法介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2023-02-02
Android TabLayout(選項卡布局)簡單用法實(shí)例分析
這篇文章主要介紹了Android TabLayout(選項卡布局)簡單用法,結(jié)合實(shí)例形式簡單分析了Android選項卡布局的界面布局與功能實(shí)現(xiàn)具體相關(guān)技巧,需要的朋友可以參考下2016-01-01
探究Android客戶端網(wǎng)絡(luò)預(yù)連接優(yōu)化機(jī)制
一般情況下,我們都是用一些封裝好的網(wǎng)絡(luò)框架去請求網(wǎng)絡(luò),對底層實(shí)現(xiàn)不甚關(guān)注,而大部分情況下也不需要特別關(guān)注處理。了解底層的一些實(shí)現(xiàn),有益于我們對網(wǎng)絡(luò)加載進(jìn)行優(yōu)化。本文就是關(guān)于根據(jù)http的連接復(fù)用機(jī)制來優(yōu)化網(wǎng)絡(luò)加載速度的原理與細(xì)節(jié)2021-06-06
Android中activity處理返回結(jié)果的實(shí)現(xiàn)方式
這篇文章主要介紹了Android中activity處理返回結(jié)果的實(shí)現(xiàn)方式,為了實(shí)現(xiàn)這個功能,Android提供了一個機(jī)制,跳轉(zhuǎn)到其他activity時,再返回,可以接受到其他activity返回的值,無需再start新的當(dāng)前activity。需要的朋友可以參考下2016-12-12



