Android 自定義精美界面包含選項菜單 上下文菜單及監聽詳解流程
先放實現結果
activity_main.xml、main_menu.xml和main.xml設計界面完成如下:
MainActivity.java運行結果、長按選擇英雄和長按選擇銘文結果如下:
目錄 需要在menu下創建如下文件,把圖片插入drawable
activity_main.xml源碼
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:background="@drawable/jks1" tools:context="com.example.a86189.threesz1.MainActivity"> <TextView android:layout_width="match_parent" android:layout_height="80dp" android:layout_marginTop="10dp" android:textColor="#29ef7f" android:text="請點擊界面右上角選項菜單查看英雄簡介" android:textSize="25sp" android:background="@drawable/jks" /> <Button android:id="@+id/hero" android:text="長按選擇英雄" android:textColor="#fa3729" android:layout_marginTop="300dp" android:background="@drawable/tm" android:layout_gravity="center" android:layout_width="200dp" android:layout_height="50dp" /> <Button android:id="@+id/inscription" android:text="長按選擇銘文" android:textColor="#fa3729" android:background="@drawable/tm" android:layout_gravity="center_horizontal" android:layout_marginTop="25dp" android:layout_width="200dp" android:layout_height="50dp" /> </LinearLayout>
main.xml源碼
<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/warrior" android:title="戰士"> <menu> <item android:id="@+id/nuoshou" android:title="諾克薩斯之手"/> <item android:id="@+id/manwang" android:title="蠻族之王"/> <item android:id="@+id/huangzi" android:title="德瑪西亞皇子"/> <item android:id="@+id/jiansheng" android:title="無極劍聖"/> </menu> </item> <item android:id="@+id/thug" android:title="刺客"> <menu> <item android:id="@+id/jie" android:title="劫"/> <item android:id="@+id/tanglang" android:title="虛空掠奪者"/> <item android:id="@+id/akali" android:title="阿卡麗"/> </menu> </item> <item android:id="@+id/ADC" android:title="射手"> <menu> <item android:id="@+id/kasha" android:title="卡莎"/> <item android:id="@+id/weien" android:title="薇恩"/> <item android:id="@+id/hanbing" android:title="寒冰射手"/> </menu> </item> </menu>
main_menu.xml
<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"> <group android:id="@+id/yx"> <item android:id="@+id/ns" android:title="諾克薩斯之手"/> <item android:id="@+id/mw" android:title="蠻族之王"/> <item android:id="@+id/hz" android:title="德瑪西亞皇子"/> <item android:id="@+id/js" android:title="無極劍聖"/> <item android:id="@+id/j" android:title="劫"/> <item android:id="@+id/tl" android:title="虛空掠奪者"/> <item android:id="@+id/akl" android:title="阿卡麗"/> <item android:id="@+id/ks" android:title="卡莎"/> <item android:id="@+id/we" android:title="薇恩"/> <item android:id="@+id/hb" android:title="寒冰射手"/> </group> <group android:id="@+id/fw"> <item android:id="@+id/zz" android:title="主宰"/> <item android:id="@+id/qd" android:title="啟迪"/> <item android:id="@+id/jj" android:title="堅決"/> <item android:id="@+id/ws" android:title="巫術"/> <item android:id="@+id/jm" android:title="精密"/> </group> </menu>
MainActivity.java源碼
package com.example.a86189.threesz1; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.ContextMenu; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; import android.view.ContextMenu.ContextMenuInfo; public class MainActivity extends AppCompatActivity { private Button Hero,Inscription; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Hero= (Button) findViewById(R.id.hero); Inscription= (Button) findViewById(R.id.inscription); registerForContextMenu(Hero); registerForContextMenu(Inscription); } @Override public void onCreateContextMenu(ContextMenu menu,View v,ContextMenu.ContextMenuInfo menuInfo) { getMenuInflater().inflate(R.menu.main_menu,menu); super.onCreateContextMenu(menu,v,menuInfo); } @Override public boolean onContextItemSelected(MenuItem item) { switch (item.getItemId()){ case R.id.ns: toast("選擇瞭諾手"); break; case R.id.mw: toast("選擇瞭蠻王"); break; case R.id.hz: toast("選擇瞭皇子"); break; case R.id.js: toast("選擇瞭劍聖"); break; case R.id.j: toast("選擇瞭劫"); break; case R.id.tl: toast("選擇瞭螳螂"); break; case R.id.akl: toast("選擇瞭阿卡麗"); break; case R.id.ks: toast("選擇瞭諾手卡莎"); break; case R.id.we: toast("選擇瞭薇恩"); break; case R.id.hb: toast("選擇瞭寒冰"); break; case R.id.zz: toast("選擇瞭主宰"); break; case R.id.qd: toast("選擇瞭啟迪"); break; case R.id.jj: toast("選擇瞭堅決"); break; case R.id.ws: toast("選擇瞭巫術"); break; case R.id.jm: toast("選擇瞭精密"); break; } return super.onContextItemSelected(item); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main,menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { int id =item.getItemId(); switch (id){ case R.id.warrior: toast("單擊瞭戰士"); break; case R.id.thug: toast("單擊瞭刺客"); break; case R.id.ADC: toast("單擊瞭射手"); } return super.onOptionsItemSelected(item); } public void toast(String str) { Toast.makeText(MainActivity.this,str,Toast.LENGTH_LONG).show(); } }
到此這篇關於Android 自定義精美界面包含選項菜單 上下文菜單及監聽詳解流程的文章就介紹到這瞭,更多相關Android 自定義界面內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- Android studio實現菜單效果
- Android Studio使用自定義對話框效果
- Android開發實現抽屜菜單
- Android下拉列表框Spinner使用方法詳解
- Android如何給Textview添加菜單項詳解(Java)