http://blog.csdn.net/wannerwang/article/details/50532271
Uso de ContextMenu
ContextView , em relação ao contexto, a ideia é semelhante ao menu de atalho do botão direito do mouse e clique para construir no Windows , a operação é manter pressionado um componente por um longo tempo
O efeito é o seguinte:
Pressione e segure da seguinte forma:
As etapas de criação são as seguintes:
1 Override Atividade é onCreateContextMenu () e chamada do menu de add () para adicionar itens de menu
2 : Substituir Atividade 's onContextItemSelected (artigo MenuItem) para responder ao evento.
3 : Chame o método registForContextMenu () para registrar o menu de contexto para a visualização.
Nota: Apenas um ContenxtMenu pode ser usado em uma interface .
ContextMenu também possui dois métodos de registro.
O processo de implementação do registro Xml é o seguinte:
No res / menu para criar um arquivo context_menu.xml de pasta
<menu 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 "
tools: context =". MainActivity ">
<item
android: id =" @ + id / red "
android: orderInCategory =" 100 "
android: title =" 红色"/>
< item
android: id = "@ + id / green"
android: orderInCategory = "200"
android: title = " 绿色" />
<item
android: id = "@ + id / blue"
android: orderInCategory = "300"
android: title = " blue " />
</menu>
在MianActivity文件中加载布局文件。
package com.xiyou.com.meanususe;
import android.graphics.Color;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.ContextMenu;
import android.view.MenuItem;
import android.view.View;
import android.widget.TextView;
//上下文菜单
public class ContextMenuus extends AppCompatActivity {
private TextView tv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.context_menu);
// 注册上下文菜单到TextView组件上
registerForContextMenu(tv);
}
// 创建上下文菜单的事件方法
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
getMenuInflater().inflate(R.menu.context_menu, menu);
super.onCreateContextMenu(menu, v, menuInfo);
}
// 上下文菜单的单击事件
@Override
public boolean onContextItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.red:
tv.setBackgroundColor(Color.RED);
break;
case R.id.green:
tv.setBackgroundColor(Color.GREEN);
break;
case R.id.blue:
tv.setBackgroundColor(Color.BLUE);
break;
}
return super.onContextItemSelected(item);
}
}