Android studio實(shí)現(xiàn)菜單操作
本文實(shí)例為大家分享了Android studio實(shí)現(xiàn)菜單操作的具體代碼,供大家參考,具體內(nèi)容如下
要求:
1.設(shè)置“打開(kāi)”、“關(guān)閉”和“退出”三個(gè)菜單項(xiàng)的菜單。
2.當(dāng)單擊“打開(kāi)“菜單項(xiàng)時(shí),使用Log.i顯示”文件已打開(kāi)“
3.當(dāng)單擊“關(guān)閉“菜單項(xiàng)時(shí),使用Log.i顯示”文件已關(guān)閉“
4.當(dāng)單擊“打開(kāi)“菜單項(xiàng)時(shí),使用Toast顯示”確定要退出嗎?“
方法一:
main.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="長(zhǎng)時(shí)間點(diǎn)這"/>
</LinearLayout>
menu.xml:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/open"
android:title="打開(kāi)">
</item>
<item
android:id="@+id/close"
android:title="關(guān)閉">
</item>
<item
android:id="@+id/quit"
android:title="退出">
</item>
</menu>
.java:
package com.example.first;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.ContextMenu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
private static final String TAG="MainActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView tv=(TextView)findViewById(R.id.text1);
registerForContextMenu(tv);
}
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
MenuInflater inflater=new MenuInflater(this);
inflater.inflate(R.menu.menu,menu);
menu.setHeaderTitle("選擇:");//為菜單頭設(shè)置標(biāo)題
}
@Override
public boolean onContextItemSelected(MenuItem item) {
switch (item.getItemId()){
case R.id.open:
Log.i(TAG, "已經(jīng)打開(kāi)");
break;
case R.id.close:
Log.i(TAG, "已經(jīng)關(guān)閉");
break;
case R.id.quit:
Toast.makeText(this, "已經(jīng)退出", Toast.LENGTH_SHORT).show();
break;
}
return super.onContextItemSelected(item);
}
}




方法二:
main.xml 啥都不寫
menu.xml不變
.java改變:
package com.example.first;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toast;
import android.util.Log;
public class MainActivity extends AppCompatActivity {
private static final String TAG="MainActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
//用onCreateOptionsMenu()顯示菜單
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu,menu);//getMenuInflater()方法得到MenuInflater
//調(diào)用inflate接收兩個(gè)參數(shù)
//R.menu.main指調(diào)用menu文件下的main資源文件
return true;//返回true,允許創(chuàng)建的菜單顯示,返回false不顯示
}
//定義菜單響應(yīng)事件
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()){
case R.id.open:
Log.i(TAG, "已經(jīng)打開(kāi)");
break;
case R.id.close:
Log.i(TAG, "已經(jīng)關(guān)閉");
break;
case R.id.quit:
Toast.makeText(this, "已經(jīng)退出", Toast.LENGTH_SHORT).show();
break;
}
return true;
}
}
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Android中src和background的區(qū)別詳解
這篇文章主要介紹了Android中src和background的區(qū)別詳解的相關(guān)資料,需要的朋友可以參考下2016-09-09
Android實(shí)現(xiàn)水波紋擴(kuò)散效果
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)水波紋擴(kuò)散效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-01-01
Android?Flutter中Offstage組件的使用教程詳解
這篇文章主要為大家詳細(xì)介紹了Android?Flutter中Offstage組件的使用教程,文中的示例代碼講解詳細(xì),對(duì)我們了解Flutter有一定的幫助,需要的可以參考一下2023-02-02
解決 INSTALL FAILED CONFLICTING PROVIDER的問(wèn)題方法
這篇文章主要介紹了解決 INSTALL FAILED CONFLICTING PROVIDER的問(wèn)題方法的相關(guān)資料,需要的朋友可以參考下2017-02-02
Android基礎(chǔ)開(kāi)發(fā)小案例之短信發(fā)送器
這篇文章主要為大家詳細(xì)介紹了Android基礎(chǔ)開(kāi)發(fā)小案例之短信發(fā)送器的具體實(shí)現(xiàn)代碼,感興趣的小伙伴們可以參考一下2016-05-05
Android 邊播邊緩存的實(shí)現(xiàn)(MP4 未加密m3u8)
這篇文章主要介紹了Android 邊播邊緩存的實(shí)現(xiàn)(MP4 未加密m3u8),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11
Android實(shí)現(xiàn)銀行卡、手機(jī)號(hào)帶空格格式
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)銀行卡、手機(jī)號(hào)帶空格的格式,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-12-12
Android?藍(lán)牙BLE開(kāi)發(fā)完全指南
BLE藍(lán)牙的興起主要因?yàn)榻陙?lái)可穿戴設(shè)備的流行,由于傳統(tǒng)藍(lán)牙功耗高不能滿足可穿戴設(shè)備對(duì)于續(xù)航的要求,所以大部分可穿戴設(shè)備采用藍(lán)牙4.0,即BLE藍(lán)牙技術(shù),這篇文章主要給大家介紹了關(guān)于Android?藍(lán)牙BLE開(kāi)發(fā)的相關(guān)資料,需要的朋友可以參考下2021-11-11
詳解android 人臉檢測(cè)你一定會(huì)遇到的坑
這篇文章主要介紹了詳解android 人臉檢測(cè)你一定會(huì)遇到的坑,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-11-11

