openOptionsMenu() not working

牧云@^-^@ 提交于 2019-12-11 02:59:26

问题


Well, tried a lot of ways to solve this problem but nothing... I want to open the options menu via menu item.

    package com.example.tachles;

import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageView;
import android.widget.ShareActionProvider;


public class MainActivity extends AnimActivity {

    private ShareActionProvider mShareActionProvider;
    ImageView history, contact, info, share;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        history = (ImageView) findViewById(R.id.imageView2);
        history.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {

                Intent history = new Intent(getApplicationContext(),
                        HistoryMenu.class);
                startActivity(history);
            }
        });

        contact = (ImageView) findViewById(R.id.imageView8);
        contact.setOnClickListener(new OnClickListener() {

            public void onClick(View v) {
                String recepientEmail = "mirnax.info@gmail.com";
                Intent intent = new Intent(Intent.ACTION_SENDTO);
                intent.setData(Uri.parse("mailto:" + recepientEmail));

                startActivity(intent);

            }
        });

        info = (ImageView) findViewById(R.id.imageView9);
        info.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {

                Intent info = new Intent(getApplicationContext(), Odot.class);
                startActivity(info);

            }
        });
    }

    // Menu
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.actionbar, menu);

        // Get the ActionProvider for later usage
        mShareActionProvider = (ShareActionProvider) menu.findItem(
                R.id.action_share).getActionProvider();

        /** Setting a share intent */
        mShareActionProvider.setShareIntent(getDefaultShareIntent());

        return super.onCreateOptionsMenu(menu);
    }

    private Intent getDefaultShareIntent() {
        Intent intent = new Intent(Intent.ACTION_SEND);
        intent.setType("text/plain");
        intent.putExtra(Intent.EXTRA_SUBJECT,
                "תכל'ס - האפליקציה שתלווה אותך לבגרויות");
        intent.putExtra(Intent.EXTRA_TEXT,
                "https://play.google.com/store/apps/details?id=com.tachles");
        return intent;
    }


    public void Options(MenuItem item){

        MainActivity.this.openOptionsMenu();
        }

    public void like(MenuItem item) {
        switch (item.getItemId()) {
        case R.id.action_like:
            Uri uri = Uri.parse("https://m.facebook.com/tachles.mirnax?_rdr");
            Intent intent = new Intent(Intent.ACTION_VIEW, uri);
            startActivity(intent);
        }

    }



}

also tried this way and it just does nothing... Android Option Menu on Button click

please help... no errors, no logcat ...


回答1:


Use below overridden method for creating context menu view.

@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo)
    {
        super.onCreateContextMenu(menu, v, menuInfo);
        menu.add(0, 1, 0, "Menu 1");
        menu.add(0, 2, 0, "Menu 2");
        menu.add(0, 3, 0, "Menu 3");
    }

Use below overridden method for handling click listener in your activity code.

    @Override
    public boolean onContextItemSelected(MenuItem item)
    {

        switch (item.getItemId())
        {
        case 1:
            //do your code here
            break;
        case 2:
            //do your code here
            break;
        case 3:
            //do your code here
            break;
        default : break;
            }

In your onCreateView() just call registerForContextMenu(yourButton); and implement onClickListener() having YourClassName.this.openContextMenu(v);



来源:https://stackoverflow.com/questions/23196923/openoptionsmenu-not-working

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!