2023學(xué)年完整公開(kāi)課版菜單_第1頁(yè)
2023學(xué)年完整公開(kāi)課版菜單_第2頁(yè)
2023學(xué)年完整公開(kāi)課版菜單_第3頁(yè)
2023學(xué)年完整公開(kāi)課版菜單_第4頁(yè)
2023學(xué)年完整公開(kāi)課版菜單_第5頁(yè)
已閱讀5頁(yè),還剩12頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

菜單(Menu)北京電子科技職業(yè)學(xué)院目錄1.認(rèn)識(shí)菜單2.常用菜單3.實(shí)例演示1.認(rèn)識(shí)菜單

手機(jī)和電腦不同,它的屏幕空間非常有限,因此充分地利用屏幕空間在手機(jī)界面設(shè)計(jì)中就顯得非常重要。如果你的活動(dòng)中有大量的菜單需要顯示,這個(gè)時(shí)候界面設(shè)計(jì)就會(huì)比較尷尬,因?yàn)閮H這些菜單就可能占用屏幕將近三分之一的空間,為此Android給我們提供了一種方式,可以讓菜單都能得到展示的同時(shí),還能不占用任何屏幕空間。

2.

常用菜單1.選項(xiàng)菜單(OptionMenu)OptionMenu:選項(xiàng)菜單,android中最常見(jiàn)的菜單,在右上角以三點(diǎn)顯示也可以通過(guò)Menu鍵來(lái)調(diào)用而菜單的XML資源文件,需要?jiǎng)?chuàng)建在/res/menu/目錄下,并且包含一下幾個(gè)元素:<menu>:定義一個(gè)Menu,是一個(gè)菜單資源文件的根節(jié)點(diǎn),里面可以包含一個(gè)或者多個(gè)<item>和<group>元素。<item>:創(chuàng)建一個(gè)MenuItem,代表了菜單中一個(gè)選項(xiàng)。<group>:對(duì)菜單項(xiàng)進(jìn)行分組,可以以組的形式操作菜單項(xiàng)。<item>元素除了常規(guī)的id、icon、title屬性的支持,還有一個(gè)重要的屬性:android:showAsAction,這個(gè)屬性是起兼容性的,描述了在Android的高版本中,菜單項(xiàng)何時(shí)以何種方式加入到ActionBar中。2.常用屬性還可以通過(guò)android:icon=“@drawable/search”屬性添加上圖標(biāo),效果如圖二所示:如果想讓MenuItem變成ActionBar的形式,可以修改res/menu/main.xml中的android:showAsAction屬性,它的屬性值一共有下面幾種:ifRoom表示:如果有空間,就顯示出來(lái)。withText表示:只顯示文本(在配了圖標(biāo)的情況下)。如果這里我將屬性設(shè)置為always,效果如圖一所示:(圖一)(圖二)(注意:直接寫(xiě)android:showAsAction=“always”是無(wú)效的,需要添加xmlns:app=/apk/res-auto然后改為app:showAsAction=“always”)2.常用屬性2.子菜單(SubMenu)android中點(diǎn)擊子菜單將彈出一個(gè)顯示子菜單項(xiàng)的懸浮框,子菜單不支持嵌套,即不能包括其他子菜單,所謂的子菜單只是在<item>中又嵌套了一層<menu>。2.常用屬性ContextMenu:上下文菜單,通過(guò)長(zhǎng)按某個(gè)視圖組件后出現(xiàn)的菜單,該組件需注冊(cè)上下文菜單。

ContextMenu使用的流程如下:Step1:重寫(xiě)onCreateContextMenu()方法Step2:為view組件注冊(cè)上下文菜單,使用registerForContextMenu()方法,參數(shù)是ViewStep3:重寫(xiě)onContextItemSelected()方法為菜單項(xiàng)指定事件監(jiān)聽(tīng)器3.上下文菜單(ContextMenu)2.常用屬性4.彈出菜單(PopupMenu)一個(gè)類(lèi)似于PopupWindow(彈出窗口)的控件,他可以很方便的在指定View下顯示一個(gè)彈出菜單,而且他的菜單選項(xiàng)可以來(lái)自于Menu資源。3.實(shí)例演示1.四種菜單的簡(jiǎn)單應(yīng)用。步驟1.首先完成activity_main布局如下所示:代碼如下:<LinearLayout

xmlns:android="/apk/res/android"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical">

<TextView

android:id="@+id/tv_text"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:textSize="20sp"

android:text="HelloWorld!"/>

<TextView

android:id="@+id/tv_context"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_gravity="center"

android:textSize="30sp"

android:text="HelloWorld!"/>

<Button

android:id="@+id/btn_pop"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="彈出菜單"

android:layout_gravity="center_horizontal"

android:layout_marginTop="300dp"/>

</LinearLayout>

3.實(shí)例演示步驟2.完成main的菜單文件,在res目錄下新建一個(gè)menu文件夾,右擊res目錄—〉New—〉Directory,輸入文件名menu,點(diǎn)擊OK。接著在這個(gè)文件夾下再新建一個(gè)名叫main的菜單文件main.xml。此布局代碼包含了選項(xiàng)菜單和子菜單。如下所示,同樣地完成布局代碼main.xml、menu_context.xml、menu_pop.xml。代碼:<menuxmlns:android="/apk/res/android"

xmlns:app="/apk/res-auto">

<item

android:id="@+id/Search_item"

android:icon="@drawable/search"

app:showAsAction="always"

android:title="搜索"/>

<item

android:id="@+id/setting"

android:title="設(shè)置文字顏色">

<!--子菜單-->

<menu><item

android:id="@+id/RED"

android:orderInCategory="300"

app:showAsAction="never"android:title="設(shè)文字為紅色"/><item

android:id="@+id/GREEN"

android:orderInCategory="400"

app:showAsAction="never"

android:title="設(shè)文字為綠色"/>

<item

android:id="@+id/BLUE"

android:orderInCategory="400"

app:showAsAction="never"

android:title="設(shè)文字為藍(lán)色"/>

</menu>

</item>

</menu>3.實(shí)例演示步驟3.接著我們完成MainActivity的JAVA文件。我們一個(gè)一個(gè)地實(shí)現(xiàn)每個(gè)菜單的功能,如下所示

1.首先完成選項(xiàng)菜單和子菜單的主要代碼。

publicclassMainActivityextendsAppCompatActivity{//定義不同顏色的菜單項(xiàng)的標(biāo)識(shí):

finalprivateintRED=110;

finalprivateintGREEN=111;

finalprivateintBLUE=112;

privateTextViewtv_text;@Override

protectedvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

tv_text=(TextView)findViewById(R.id.tv_text);

}

Toast.LENGTH_SHORT).show();

break;

caseR.id.GREEN:

tv_text.setTextColor(Color.GREEN);

Toast.makeText(this,"文字變綠",Toast.LENGTH_SHORT).show();

break;caseR.id.BLUE:

tv_text.setTextColor(Color.BLUE);

Toast.makeText(this,"文字變藍(lán)",Toast.LENGTH_SHORT).show();

break;

caseR.id.Search_item:

Toast.makeText(this,"搜索",Toast.LENGTH_SHORT).show();

break;

}

returnsuper.onOptionsItemSelected(item);

}

}@Override

publicbooleanonOptionsItemSelected(MenuItemitem){

//Handleactionbaritemclickshere.Theactionbarwill

//automaticallyhandleclicksontheHome/Upbutton,solong

//asyouspecifyaparentactivityinAndroidManifest.xml.

switch(item.getItemId()){

caseR.id.RED:tv_text.setTextColor(Color.RED);

Toast.makeText(this,"文字變紅",

3.實(shí)例演示步驟4.接著我們完成MainActivity的JAVA文件。我們一個(gè)一個(gè)地實(shí)現(xiàn)每個(gè)菜單的功能,如下所示

privateTextViewtv_context;tv_context=(TextView)findViewById(R.id.tv_context);registerForContextMenu(tv_context);@Override

//重寫(xiě)上下文菜單的創(chuàng)建方法

publicvoidonCreateContextMenu(ContextMenumenu,Viewv,

ContextMenu.ContextMenuInfomenuInfo){

MenuInflaterinflator=newMenuInflater(this);

inflator.inflate(R.menu.menu_context,menu);

super.onCreateContextMenu(menu,v,menuInfo);

}caseR.id.red:

Toast.makeText(this,"全選",Toast.LENGTH_SHORT).show();

break;

caseR.id.green:

Toast.makeText(this,"復(fù)制",Toast.LENGTH_SHORT).show();

break;

caseR.id.blue:

Toast.makeText(this,"粘貼",Toast.LENGTH_SHORT).show();

break;2.上下文菜單的主要代碼。3.實(shí)例演示步驟5.接著我們完成MainActivity的JAVA文件。我們一個(gè)一個(gè)地實(shí)現(xiàn)每個(gè)菜單的功能,如下所示

1.最后彈出菜單的主要代碼。privateButtonbtn_pop;

btn_pop=(Button)findViewById(R.id.btn_pop);

btn_pop.setOnClickListener(newView.OnClickListener(){

@Override

publicvoidonClick(Viewv){

PopupMenupopup=newPopupMenu(MainActivity.this,btn_pop);

popup.getMenuInflater().inflate(R.menu.menu_pop,popup.getMenu());

popup.setOnMenuItemClickListener(newPopupMenu.OnMenuItemClickListener(){

@Override

publicbooleanonMenuItemClick(MenuItemitem){

switch(item.getItemId())

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論