package com.example.demo16; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.ContextMenu; import android.view.MenuItem; import android.view.View; import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.Toast; import java.util.ArrayList; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); showListView(); } /** * 设置ListView显示内容 */ private void showListView(){ ListView listView = (ListView) findViewById(R.id.listView); ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, getData()); listView.setAdapter(adapter); this.registerForContextMenu(listView); } @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) { super.onCreateContextMenu(menu, v, menuInfo); //设置Menu显示内容 menu.setHeaderTitle("文件操做"); menu.setHeaderIcon(R.drawable.file); menu.add(1, 100, 1, "复制"); menu.add(1, 101, 1, "剪切"); menu.add(1, 102, 1, "粘贴"); } @Override public boolean onContextItemSelected(MenuItem item) { switch (item.getItemId()) { case 100: Toast.makeText(MainActivity.this, "点击了复制", Toast.LENGTH_SHORT).show(); break; case 101: Toast.makeText(MainActivity.this, "点击了剪切", Toast.LENGTH_SHORT).show(); break; case 102: Toast.makeText(MainActivity.this, "点击了粘贴", Toast.LENGTH_SHORT).show(); break; } return super.onContextItemSelected(item); } /** * 构造ListView显示的数据 * @return */ private ArrayList<String> getData(){ ArrayList<String> list = new ArrayList<String>(); for(int i=0; i<5; ++i) { list.add("文件" + i); } return list; } }
运行效果:java
<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/action_item1" android:orderInCategory="100" android:showAsAction="never" android:title="复制"/> <item android:id="@+id/action_item2" android:orderInCategory="101" android:showAsAction="never" android:title="剪切"/> <item android:id="@+id/action_item3" android:orderInCategory="102" android:showAsAction="never" android:title="粘贴"/> </menu>
package com.example.demo16; 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; import java.util.ArrayList; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); showListView(); } /** * 设置ListView显示内容 */ private void showListView(){ ListView listView = (ListView) findViewById(R.id.listView); ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, getData()); listView.setAdapter(adapter); //注册上下文菜单 this.registerForContextMenu(listView); } @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) { super.onCreateContextMenu(menu, v, menuInfo); //设置Menu显示内容 menu.setHeaderTitle("文件操做"); menu.setHeaderIcon(R.drawable.file); MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.main, menu); } @Override public boolean onContextItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.action_item1: Toast.makeText(MainActivity.this, "点击了复制", Toast.LENGTH_SHORT).show(); break; case R.id.action_item2: Toast.makeText(MainActivity.this, "点击了剪切", Toast.LENGTH_SHORT).show(); break; case R.id.action_item3: Toast.makeText(MainActivity.this, "点击了粘贴", Toast.LENGTH_SHORT).show(); break; } return super.onContextItemSelected(item); } /** * 构造ListView显示的数据 * @return */ private ArrayList<String> getData(){ ArrayList<String> list = new ArrayList<String>(); for(int i=0; i<5; ++i) { list.add("文件" + i); } return list; } }
效果如上例android