android实现菜单第二部分上下文菜单(长按d出菜单)

android实现菜单第二部分上下文菜单(长按d出菜单),第1张

android实现菜单第二部分上下文菜单(长按d出菜单)

具体实现方法和上节的折叠菜单差不多

首先是做一个menu文件然后在添加菜单的方法内获取,然后在点击事件方法中设置点击事件,区别就是,这里需要新建一个textview尺寸需要占满屏幕,然后在注册方法中注册这个textview就可以点击改变这个textview的背景颜色了

首先创建menu文件



    

    
    

    
    

    

然后在主页面添加一个文字组件,尺寸填满屏幕




    

最后在主页面写逻辑

package com.example.contextmenu;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;

import android.graphics.Color;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.MenuItem;
import android.view.View;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {
    private TextView textView;
    //声明一个textview
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        textView = findViewById(R.id.tv);
        //把声明的textview绑定
        registerForContextMenu(textView);
        //把上下文菜单注册到textview上
    }

    
    @Override
    public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {

        super.onCreateContextMenu(menu, v, menuInfo);
        getMenuInflater().inflate(R.menu.menu_colour,menu);


    }

    
    @Override
    public boolean onContextItemSelected(@NonNull MenuItem item) {

        switch (item.getItemId()){
            case R.id.red:
                textView.setBackgroundColor(Color.RED);
                break;
            case R.id.blue:
                textView.setBackgroundColor(Color.BLUE);
                break;
            case R.id.green:
                textView.setBackgroundColor(Color.GREEN);
                break;
        }
        return super.onContextItemSelected(item);

    }
}

最终效果

 

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5717910.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-18
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存