2

我正在为 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,项目选择现在正在工作。这是我的其他代码,每次我选择其他代码时应用程序都会崩溃。

这是许可证活动:

            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。

4

1 回答 1

0

我看到了你的错误。您需要使用MenuItem.getItemId()获取开关内的菜单项 ID ,并返回 return 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");
     }
}
于 2013-08-16T13:08:54.153 回答