在Android中的CreateContextMenu上不起作用

时间:2019-02-04 04:18:05

标签: java android

创建了两个TextView和调用方法registerForContextMenu方法,称为@override方法onCreateContextMenu,但是当我单击textViews时,它无法按照以下步骤工作。原因吗?

TextView color,size;

    final int COLOR_RED = 1;
    final int COLOR_BLUE = 2;

    final int SIZE_26 = 26;
    final int SIZE_30 = 30;



    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        color = (TextView)findViewById(R.id.color);
        size = (TextView)findViewById(R.id.size);
        Log.d("nimae","ishla");
        registerForContextMenu(color);
        registerForContextMenu(size);


    }

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

            switch (v.getId()){
                case R.id.color:
                    menu.add(0,COLOR_RED,0,"Qizil");
                    menu.add(0,COLOR_BLUE,0,"Ko`k");
                    break;
                case R.id.size:
                    menu.add(0,SIZE_26,0,"26 size");
                    menu.add(0,SIZE_30,0,"30 size");
                    break;
            }


    }

2 个答案:

答案 0 :(得分:0)

因为您没有提交完整的代码,所以不清楚您的问题,我认为这可能对您有用。

   textViews.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
       registerForContextMenu(color);
       registerForContextMenu(size);
    }
});

答案 1 :(得分:0)

点击TextView之后,我应该使用openContextMenu(View v)方法;以下代码在我的情况下有效

  color = (TextView)findViewById(R.id.color);
    size = (TextView)findViewById(R.id.size);
    registerForContextMenu(color);
    registerForContextMenu(size);
    color.setOnClickListener(v -> {
            openContextMenu(color);
    });
    size.setOnClickListener(v -> {
        openContextMenu(size);
    });