【Android】學習筆記(2)——基本控件二

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的顯示的名稱。


代碼片段如下:

  1. @Override

  2. publicboolean onCreateOptionsMenu(Menu menu) {

  3. // TODO Auto-generated method stub

  4. super.onCreateOptionsMenu(menu);

  5. //group1

  6. menu.add(1, 1, 1, R.string.aa);

  7. menu.add(1, 2, 2, R.string.bb);

  8. menu.add(1, 3, 3, R.string.cc);

  9. //group2

  10. menu.add(2, 4, 1, R.string.dd);

  11. menu.add(2, 5, 2, R.string.ee);

  12. menu.add(2, 6, 3, R.string.ff);

  13. returntrue;

  14. }


當然,還有其他的add方法,上述add方法是最詳細的。

此時,運行android虛擬機,然後點擊menu的按鈕,可得如下排列的menu:

180658272.png


!!!請注意各個按鈕的排列順序。

然後,當然要對這些按鈕進行一些事件的添加了。

這裏需要Override onOptionsItemSelected(MenuItem item) 方法,參數item即爲我們點擊的該item。

在這個函數裏,我們可以用switch或者其他條件判斷語句來對不同的按鈕做出不同的事件處理,下列代碼片段是對A和F做了事件處理:


  1. @Override

  2. publicboolean onOptionsItemSelected(MenuItem item) {

  3. // TODO Auto-generated method stub

  4. switch (item.getItemId()) {

  5. case1:

  6. Toast.makeText(ControlDemo2Activity.this,

  7. String.valueOf(item.getItemId()), Toast.LENGTH_SHORT)

  8. .show(); //彈出所選中item的itemId

  9. break;

  10. case6:

  11. finish(); //關閉

  12. break;

  13. }

  14. returnsuper.onOptionsItemSelected(item);

  15. }



Toast控件

Toast控件是比較簡單的一種控件,在上述的例子中也有應用。其效果就是當某個事件觸發或者是需要出現某種提示的時候,在Activity上彈出一個短暫的提示信息。

效果如下:

181042925.png


實現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字符串。

代碼片段如下:

  1. Toast.makeText(ToastDemoActivity.this, R.string.toast, Toast.LENGTH_LONG).show();

當然,也可以自己設定Toast的樣式,注意的是,必須先要調用Toast的一個靜態方法makeText才能進一步的自己設置樣式和內容,方法如下:


  1. Toast toast = Toast.makeText(ToastDemoActivity.this, "" , Toast.LENGTH_LONG);

  2. toast.setDuration(0); //改變Toast的彈出持續時間

  3. toast.setText("aaa"); //改變Toast的文字

  4. toast.show();

Toast的樣式自定義的還有很多,包括setGravity(),setMargin(),setXOffset(),setYOffset()等等,可以根據自己的喜好來自己定義。

附件是例子的代碼,僅供參考。

如果我的文章給與了你幫助,就不妨請我喝杯咖啡吧,點擊->btn-index.png


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章