AndroidContextMenu

AndroidContextMenu 首页 / Android入门教程 / AndroidContextMenu

当用户长按元素时,将显示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

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

教程推荐

运维监控系统实战笔记 -〔秦晓辉〕

Go 语言项目开发实战 -〔孔令飞〕

性能优化高手课 -〔尉刚强〕

Spark核心原理与实战 -〔王磊〕

WebAssembly入门课 -〔于航〕

.NET Core开发实战 -〔肖伟宇〕

黄勇的OKR实战笔记 -〔黄勇〕

深入浅出计算机组成原理 -〔徐文浩〕

Service Mesh实践指南 -〔周晶〕

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