Android學習筆記(2)——基本控制項二

來源:互聯網
上載者:User

Menu 控制項
 
不需要在布局檔案中設定Menu的樣式等,只需要在Activity中Override onCreateOptionsMenu(Menu menu)方法,在方法中對menu進行添加和排序等。添加menu中item的方法為add (int groupId, int itemId, int order, CharSequence title),這裡有4個參數,第一個是groupId,若設定為單一的groupId,則menu中的Item順序會按照order排列,也就是按照第三個參數order排列;但是,如果有2個groupId,那麼這時menu的顯示順序為group1的item1,group2的item1,group1的item2,group2的item2……以此類推,即各個group輪流顯示item。第二個參數是Item的唯一標識,要保持相互不一致。第三個參數為group中item的顯示順序;第四個參數為item的顯示的名稱。
 
程式碼片段如下:
@Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // TODO Auto-generated method stub
        super.onCreateOptionsMenu(menu);
        //group1
        menu.add(1, 1, 1, R.string.aa);
        menu.add(1, 2, 2, R.string.bb);
        menu.add(1, 3, 3, R.string.cc);
//group2
        menu.add(2, 4, 1, R.string.dd);
        menu.add(2, 5, 2, R.string.ee);
        menu.add(2, 6, 3, R.string.ff);
 
        return true;
    }
 
當然,還有其他的add方法,上述add方法是最詳細的。
此時,運行android虛擬機器,然後點擊menu的按鈕,可得如下排列的menu:

 
!!!請注意各個按鈕的排列順序。
然後,當然要對這些按鈕進行一些事件的添加了。
這裡需要Override onOptionsItemSelected(MenuItem item) 方法,參數item即為我們點擊的該item。
在這個函數裡,我們可以用switch或者其他條件判斷語句來對不同的按鈕做出不同的事件處理,下列程式碼片段是對A和F做了事件處理:
 
@Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // TODO Auto-generated method stub
 
        switch (item.getItemId()) {
        case 1:
            Toast.makeText(ControlDemo2Activity.this,
                    String.valueOf(item.getItemId()), Toast.LENGTH_SHORT)
                    .show(); //彈出所選中item的itemId
            break;
        case 6:
            finish(); //關閉
            break;
        }
        return super.onOptionsItemSelected(item);
    }
 
 
Toast控制項
Toast控制項是比較簡單的一種控制項,在上述的例子中也有應用。其效果就是當某個事件觸發或者是需要出現某種提示的時候,在Activity上彈出一個短暫的提示資訊。
效果如下:

 
實現Toast十分簡單,只需要使用Toast的靜態方法
makeText(Context context, int resId, int duration)
或者
makeText(Context context, CharSequence text, int duration)
兩個方法的第一個參數是Context對象,一般就是所處的Activity,第三個參數是該Toast彈出後持續的時間,可以使用Toast.LENGTH_LONG或者Toast.LENGTH_SHORT來設定,當然也可以使用setDuration方法來自己設定時間長度。不同的是第三個參數,前者是會引用資源檔中的內容,後者則是需要加入一個CharSequence的對象,可以是String字串。
程式碼片段如下:
Toast.makeText(ToastDemoActivity.this, R.string.toast, Toast.LENGTH_LONG).show();
當然,也可以自己設定Toast的樣式,注意的是,必須先要調用Toast的一個靜態方法makeText才能進一步的自己設定樣式和內容,方法如下:
 
Toast toast = Toast.makeText(ToastDemoActivity.this, "" , Toast.LENGTH_LONG);
        toast.setDuration(0); //改變Toast的彈出期間
        toast.setText("aaa"); //改變Toast的文字
        toast.show();
Toast的樣式自訂的還有很多,包括setGravity(),setMargin(),setXOffset(),setYOffset()等等,可以根據自己的喜好來自己定義。
附件是例子的代碼,僅供參考。
 
 
 
 
 
本文出自 “戰神殿” 部落格

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.