选择菜单项无效

时间:2013-08-16 13:04:42

标签: android android-activity menu options

我正在为Android创建一个应用程序,我想在上下文菜单中创建项目。 这不是一个问题,他们被展示出来了。但是当我点击它们时,没有任何反应。

我配置了我需要配置的东西,但我真的无法找到问题。你看到了什么吗?这是我的Main-Java-Code的完整代码。

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.webkit.WebView;

public class MainActivity extends Activity{

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    WebView myWebView = (WebView) findViewById(R.id.webView);
    myWebView.loadUrl("ABC");}




@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.optionsmenu, menu);
    return true;
}
public boolean onOptionsItemSelected(MenuItem about) {
    //respond to menu item selection
    switch (R.menu.optionsmenu) {
        case R.id.about:
            startActivity(new Intent(this, SecondActivity.class));
            return true;
        case R.id.download:
            startActivity(new Intent(this, DownloadActivity.class));
            return true;
        case R.id.impressum:
            startActivity(new Intent(this, ImpressumActivity.class));
        case R.id.license:
            startActivity(new Intent(this, LicenseActivity.class));
    }
    return false;
}

我希望他们显示活动,但没有任何反应。

感谢您的帮助

感谢Phil,项目选择正在进行中。在我的其他代码中,每次选择其他代码时应用程序都会崩溃。

这是LicenseActivity:

            import android.app.Activity;
            import android.os.Bundle;
            import android.webkit.WebView;

            /**
             * Created by Florent on 16.08.13.
            */
            public class LicenseActivity extends Activity {
                        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
                        WebView myWebView = (WebView) findViewById(R.id.licenseview);
                        myWebView.loadUrl("URL");
                        }
            }

Second Activity只是一项设计活动,其他活动与License Activity相同。

1 个答案:

答案 0 :(得分:0)

我看到你的错误。您需要使用 MenuItem.getItemId()在开关内获取menuitems Id,并且返回返回super.onOptionsItemSelected();

public boolean onOptionsItemSelected(MenuItem about) {
    //respond to menu item selection

    switch (about.getItemId()) { // call this here
        case R.id.about:
            startActivity(new Intent(this, SecondActivity.class));
            return true;
        case R.id.download:
            startActivity(new Intent(this, DownloadActivity.class));
            return true;
        case R.id.impressum:
            startActivity(new Intent(this, ImpressumActivity.class));
        case R.id.license:
            startActivity(new Intent(this, LicenseActivity.class));
    }

    return super.onOptionsItemSelected(about); // return this instead of false
}

此外,不要忘记在您的清单文件中注册您的活动

确保在Activity的onCreate()方法中调用 setContentView(...)

public class LicenseActivity extends Activity {

     public void onCreate(Bundle savedInstanceState) {

            super.onCreate(savedInstanceState);

            setContentView(R.layout.whateveryourlayoutis); // DONT FORGET THIS

            WebView myWebView = (WebView) findViewById(R.id.licenseview);
            myWebView.loadUrl("URL");
     }
}