《第一行代碼——Android》郭霖著java
更多內容,請訪問個人我的博客醒島android
Toast是Android系統提供的一種很是好的提醒方式,在程序中可使用它將一些短小的信息通知給用戶,這些信息會在一段時間後自動消失,而且不會佔用任何屏幕空間,咱們如今就嘗試一下如何在活動中使用Toast。app
使用Toast的方法很是簡單,在onCreate()方法中添加代碼:ide
Button button1 = (Button) findViewById(R.id.button_1); button1.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Toast.makeText(FirstActivity.this, "You clicked Button 1", Toast.LENGTH_SHORT).show(); } });
在活動中,能夠經過findViewById()方法獲取到在佈局文件中定義的元素,這裏咱們傳入R.id.button_1,來獲得按鈕的實例,這個值是剛纔在first_layout.xml中經過android:id屬性指定的。findViewById()方法返回的是一個View對象,咱們須要向下轉型將它轉成Button對象。獲得了按鈕的實例以後,咱們經過調用setOnClickListener()方法爲按鈕註冊一個監聽器,點擊按鈕時就會執行監聽器中的onClick()方法。所以,彈出Toast的功能固然是要在onClick()方法中編寫了。函數
Toast的用法很是簡單,經過靜態方法makeText()建立出一個Toast對象,而後調用show()將Toast顯示出來就能夠了。這裏須要注意的是,makeText()方法須要傳入三個參數。第一個參數是Context,也就是Toast要求的上下文,因爲活動自己就是一個Context對象,所以這裏直接傳入FirstActivity.this便可。第二個參數是Toast顯示的文本內容,第三個參數是Toast顯示的時長,有兩個內置常量能夠選擇Toast.LENGTH_SHORT和Toast.LENGTH_LONG。typecho
效果以下圖所示:
佈局
菜單是手機應用中常用到的功能。平時菜單是隱藏的,只有當按下菜單鍵時,菜單彈出,咱們選擇本身須要的功能。怎樣實現這樣的效果呢?方法就是在活動中使用Menu。ui
首先咱們像前一篇中在res下添加layout文件夾同樣,在res下添加menu文件夾。以下圖。
this
在menu文件夾上右擊new→Menu resource file,以下圖所示,填寫文件名爲main。點擊OK,就生成了main.xml文件。
spa
打開main.xml文件,插入以下代碼:
<item android:id="@+id/add_item" android:title="Add"/> <item android:id="@+id/remove_item" android:title="Remove"/>
這裏咱們建立了兩個菜單項,其中<item>標籤就是用來建立具體的某一個菜單項,而後經過android:id給這個菜單項指定一個惟一標識符,經過android:title給這個菜單項指定一個名稱。
而後打開FirstActivity,重寫onCreateOptionsMenu()方法,代碼以下所示:
public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main, menu); return true; }
經過getMenuInflater()方法可以獲得MenuInflater對象,再調用它的inflate()方法就能夠給當前活動建立菜單了。inflate()方法接收兩個參數,第一個參數用於指定咱們經過哪個資源文件來建立菜單,這裏固然傳入R.menu.main,第二個參數用於指定咱們的菜單項將添加到哪個Menu對象當中,這裏直接使用onCreateOptionsMenu()方法中傳入的menu參數。而後給這個方法返回true,表示容許建立的菜單顯示出來,若是返回了false,建立的菜單將沒法顯示。
爲了使咱們的菜單不只能顯示,並且可以響應操做,咱們來給它加上響應函數。打開FirstActivity,重寫onOptionsItemSelected()方法:
public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.add_item: Toast.makeText(this, "You clicked Add", Toast.LENGTH_SHORT).show(); break; case R.id.remove_item: Toast.makeText(this, "You clicked Remove", Toast.LENGTH_SHORT).show(); break; default: } return true; }
在onOptionsItemSelected()方法中,經過調用item.getItemId()來判斷咱們點擊的是哪個菜單項,而後給每一個菜單項加入本身的邏輯處理,這裏咱們就活學活用,彈出一個剛剛學會的Toast。
運行程序。。咦。。菜單鍵在哪裏???爲了更好地演示效果,讓咱們把繼承自Activity的FirstActivity更改成繼承自AppCompatActivity。如今標題欄顯示了出來,讓咱們點擊一下右上角的小圖標,菜單顯示出來了,效果以下。
如何銷燬一個活動呢?
其實答案很是簡單,只要按一下Back鍵就能夠銷燬當前的活動了。不過若是你不想經過按鍵的方式,而是但願在程序中經過代碼來銷燬活動,固然也能夠,Activity類提供了一個finish()方法,咱們在活動中調用一下這個方法就能夠銷燬當前活動了。
修改按鈕監聽器中的代碼,以下所示:
button1.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { finish(); } });
從新運行程序,這時點擊一下按鈕,當前的活動就被成功銷燬了,效果和按下Back鍵是同樣的。