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;
}

アクティビティを表示させたいのですが、何も起こりません。

ご協力いただきありがとうございます

フィルのおかげで、アイテムの選択が機能するようになりました。ここで私の他のコードは、他のコードを選択するたびにアプリが壊れます。

ライセンス アクティビティは次のとおりです。

            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");
                        }
            }

2 番目のアクティビティは設計アクティビティのみで、その他のアクティビティはライセンス アクティビティと同じです。

4

1 に答える 1

0

私はあなたの間違いを見ます。MenuItem.getItemId()を使用してスイッチ内の menuitems 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
}

また、アクティビティをマニフェスト ファイル内に登録することを忘れないでください。

また、アクティビティの 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 に答える