Android - Context Menu

Android - Context Menu 首页 / Android入门教程 / Android - Context Menu

当用户长按元素时,将显示Android上下文菜单。也称为浮动菜单。

上下文菜单示例

让无涯教程看看Android中的上下文菜单的简单示例。从面板上拖出一个listview,现在xml文件如下所示:

File: activity_main.xml
<!--?xml version="1.0" encoding="utf-8"?-->
<android.support.constraint.constraintlayout
    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" tools:context="example.learnfk.com.contextmenu.MainActivity">
    <listview android:layout_width="368dp" android:layout_height="495dp" android:id="@+id/listView" android:layout_marginend="8dp" android:layout_marginstart="8dp" android:layout_margintop="8dp" app:layout_constraintend_toendof="parent" app:layout_constrainthorizontal_bias="0.0" app:layout_constraintstart_tostartof="parent" app:layout_constrainttop_totopof="parent"></listview>
</android.support.constraint.constraintlayout>

在菜单目录中在菜单目录中创建一个单独的menu_main.xml文件。

<!--?xml version="1.0" encoding="utf-8"?-->
<menu
    xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/call" android:title="Call"></item>
    <item android:id="@+id/sms" android:title="SMS"></item>
</menu>

让无涯教程编写代码以在按列表视图上显示上下文菜单。

File: MainActivity.java
package example.learnfk.com.contextmenu;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {
    ListView listView;
    String contacts[]={"Ajay","Sachin","Sumit","Tarun","Yogesh"};
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        listView=(ListView)findViewById(R.id.listView);
        ArrayAdapter<string> adapter=new ArrayAdapter<string>(this,android.R.layout.simple_list_item_1,contacts);
        listView.setAdapter(adapter);
       //为上下文菜单注册 ListView
        registerForContextMenu(listView);
    }
    @Override
    public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo)
    {
        super.onCreateContextMenu(menu, v, menuInfo);
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.menu_main, menu);
        menu.setHeaderTitle("Select The Action");
    }
    @Override
    public boolean onContextItemSelected(MenuItem item){
        if(item.getItemId()==R.id.call){
            Toast.makeText(getApplicationContext(),"calling code",Toast.LENGTH_LONG).show();
        }
        else if(item.getItemId()==R.id.sms){
            Toast.makeText(getApplicationContext(),"sending sms code",Toast.LENGTH_LONG).show();
        }else{
            return false;
        }
        return true;
    }
}

输出:

android context menu example output 1

ListView的长按后输出。

无涯教程网

android context menu example output 2

单击上下文菜单后输出。

链接:https://www.learnfk.comhttps://www.learnfk.com/android/android-context-menu-example.html

来源:LearnFk无涯教程网

android context menu example output 3

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

持续交付36讲 -〔王潇俊〕

程序员进阶攻略 -〔胡峰〕

代码精进之路 -〔范学雷〕

TensorFlow快速入门与实战 -〔彭靖田〕

Netty源码剖析与实战 -〔傅健〕

数据中台实战课 -〔郭忆〕

正则表达式入门课 -〔涂伟忠〕

React Hooks 核心原理与实战 -〔王沛〕

eBPF核心技术与实战 -〔倪朋飞〕

好记忆不如烂笔头。留下您的足迹吧 :)