Android開發自學筆記(五):使用代碼控制介面_Android

來源:互聯網
上載者:User

酷酷的外表已經具備了,那就開始讓我們真正把它的功能給實現起來吧,外強中乾,花拳繡腿可不行哦,我們需要真正的本領,需要一顆自強不息的心哦,常常想想自己的夢想什麼,這樣才不會迷失自己,才會在茫茫的世界中找到自己前進的方向!我不會告訴你我剛看過《voice of China session 3》哦。

從上兩節教程中,我們已經會搭出如下美美的布局了,歡迎翻頁查閱:)

Android自學開發第四篇之布局上
Android自學開發第五篇之布局下

添加第二個layout
關於layout布局我們不再贅述,這裡再額外添加一個layout頁面用來顯示搜尋結果的,我們依然選擇LinearLayout,這個layout同樣是ViewGroup的執行個體化,我們在裡面添加一個View用來顯示結果,這個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
接下來好戲就要來了,先看看檔案結構吧,不然紙上空談兵,我自己都受不了。

這個MyActivity是我從建立這個HelloAndroid工程中預設產生的Activity修改而來的,這個無所謂叫什麼名字,我們先開啟它,還記得我們曾經把這張Activity綁定了search這個layout了嗎?先簡單介紹下每個Activity都有多個回呼函數(即on打頭的onXXX系列函數),其中有onCreate,onStart,onResume,onStop等,這些函數描述了這張Activity的生命週期(life-cycle),這個很重要回頭我會詳細給自己做一個review,我們需要做的是在onCreate中添加自己的代碼,這個函數是MyActivity一開啟就啟動並執行。

我打算在MyActivity的這個onCreate函數添加三句代碼。

 

setContentView我們先暫時理解為綁定函數,我們綁定了search這個layout。

setup是我自己建立的函數,主要作用是為綁定及初始化search這個layout的各個View以及為它們綁定監聽事件。

getResult同樣為我自己建立的,主要用來傳遞點擊事件資訊及擷取搜尋結果。

 @Override public void onCreate(Bundle savedInstanceState) {   super.onCreate(savedInstanceState);   setContentView(R.layout.search);   setup();   getResult(); }

setup函數如下

 public void setup() {   mSearchBtn = (Button) findViewById(R.id.btn_search);   mEnterEditText = (EditText) findViewById(R.id.edit_message); }

 

這個setup很簡單及擷取search中的搜尋按鈕及搜尋方塊。

getResult函數如下

 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函數為搜尋按鈕綁定了點擊事情的Listener(監X器),一旦使用者點擊這個搜尋按鈕,我們動作為擷取搜尋方塊的內容並封裝到EXTRA_MESSAGE中去,然後將這個EXTRA_MESSAGE附加到Intent中,並使用startActivity函數調出搜尋結果頁面。

添加搜尋結果的code
搜尋結果的動作我們也已經準備好了,我們一開始就準備的show_result.xml就是要為它服務的,現在我們定一個另外一個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函數中完成WebView的綁定,並從上一個Activity(即MyActivity)中的 Intent擷取EXTRA_MESSAGE的值,並調用百度的介面,開啟就可以。


比如搜尋ourunix,並點擊搜尋按鈕就會出現如下頁面:

我在這一篇文章中並沒有過分強調Android的四大組件之一的Activity的生命週期以及組件及組件的粘合的Intent,本篇文章主要讓初學者能夠儘快上手Android,並體驗到Android開發的簡單容易,關於Activity的生命週期以及其他組件我會在後面一一講解。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.