Notas de estudo do Android - o uso de ContextMenu

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);
    }
}

Acho que você gosta

Origin blog.csdn.net/kerwinJu/article/details/53100680
Recomendado
Clasificación