后退箭头 - 错误:找不到符号类MenuItem

时间:2017-11-08 11:02:54

标签: android optionmenu

我试图将getSupportActionBar()用于上一页。 在创建toolbar后退箭头的同时,第二种方法出现错误 error: cannot find symbol class MenuItem

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

        getSupportActionBar().setHomeButtonEnabled(true);
    }

    @Override // This method creates the error
    public boolean onOptionsItemSelected(MenuItem item) {
        startActivity(new Intent(StartActivity.this, MainActivity.class));
    }

4 个答案:

答案 0 :(得分:1)

尝试此操作以获取后退arraow的点击事件

@Override
    public boolean onOptionsItemSelected(MenuItem item) {

        if (item.getItemId() == android.R.id.home) {
           // perform Your action here
            return true;
        }
        return false;
    }

并在您的清单文件中为您的活动添加父活动,如此

    <activity
        android:name=".yourActivity"
        android:parentActivityName=".ParentActivityname"/>

答案 1 :(得分:1)

Ratilal Chopda已经发布了正确答案,这里只是漂亮代码中的解决方案

public class ServicesViewActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // etc...
        getActionBar().setDisplayHomeAsUpEnabled(true);
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
        case android.R.id.home:
            NavUtils.navigateUpFromSameTask(this);
            return true;
        default:
            return super.onOptionsItemSelected(item);
        }
    }
}

函数NavUtils.navigateUpFromSameTask(this)要求您在AndroidManifest.xml文件中定义父活动

  <activity android:name="com.example.ServicesViewActivity" >
            <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value="com.example.ParentActivity" />
    </activity>

http://developer.android.com/design/patterns/navigation.html#up-vs-back

答案 2 :(得分:1)

你可以试试这个

<强> MainActivity.java

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


   }

    @Override // This method creates the error
    public boolean onOptionsItemSelected(MenuItem item) {
       switch(item.getItemId()) {
           case android.R.id.home:
              startActivity(new Intent(StartActivity.this, MainActivity.class));
             return true;
        }
        return false;

     }

在AndroidManifest.xml里面添加元数据标签,如此

       <activity
        android:name=".StartActivity"
        android:parentActivityName="your package name.MainActivity">

         <meta-data
           android:name="android.support.PARENT_ACTIVITY"
           android:value="your package name.MainActivity" />
    </activity>

注意:将“您的包名称”更改为项目包名称

答案 3 :(得分:0)

您还可以检查菜单项是否正确导入 这是我的经验,没有导入该类,因此找不到MenuItem