0

現在、アプリに基本的なアクション バーを作成しようとしています。メイン アクティビティで onCreateOptionsMenu メソッドをオーバーライドしようとしていますが、「メソッドはスーパータイプのメソッドをオーバーライドまたは実装していません」というエラーが表示されます。ただし、「Activity」クラス定義 ( https://developer.android.com/reference/android/app/Activity.html ) には、メソッドが含まれていることがわかります。では、メソッドをオーバーライドできない理由を理解してください。

MainActivity クラスのコードとすべてのインポートを次に示します。

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

public class MainActivity extends Activity {

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

     @Override
     public boolean OnCreateOptionsMenu(Menu menu)
     {
         //Inflate the menu. this adds items to the action bar if it is present
         getMenuInflater().inflate(R.menu.menu_main,menu);
         return super.onCreateOptionsMenu(menu);
     }

     @Override
     public boolean onOptionsItemSelected(MenuItem item)
     {
         switch(item.getItemId())
         {
             case R.id.action_create_order:
                 //Code to run when the create order item is clicked
                 Intent intent=new Intent(this,OrderActivity.class);
                 startActivity(intent);
                 return true;
             case R.id.action_settings:
                 //Code to run when the settings item is clicked
                 return true;
             default:
                 return super.onOptionsItemSelected(item);
         }
     }


 }
4

1 に答える 1

2

これは、基本クラスに存在しないメソッドをオーバーライドしようとしているためです。Java のメソッドでは、大文字と小文字が区別されます。したがって、OnCreateOptionsMenu と onCreateOptionsMenu は異なるメソッドです。メソッド名を onCreateOptionsMenu に変更すると機能します。

于 2016-06-21T16:29:35.143 に答える