当用户长按元素时,将显示Android上下文菜单。也称为浮动菜单。
让无涯教程看看Android中的上下文菜单的简单示例。从面板上拖出一个listview,现在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>
让无涯教程编写代码以在按列表视图上显示上下文菜单。
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; } }
ListView的长按后输出。
单击上下文菜单后输出。
链接:https://www.learnfk.comhttps://www.learnfk.com/android/android-context-menu-example.html
来源:LearnFk无涯教程网
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)