【问题标题】:Back button on actionBar does not workactionBar 上的后退按钮不起作用
【发布时间】:2015-12-20 16:45:08
【问题描述】:

我在应用标题旁边的 actionBar 上有一个 < 按钮和一个 + 按钮。

我使用下面的代码创建了< 按钮

 final ActionBar actionBar = getSupportActionBar();
 actionBar.setDisplayHomeAsUpEnabled(true);
 actionBar.setHomeAsUpIndicator(R.mipmap.back_to);

然后

 @Override
    public boolean onCreateOptionsMenu(Menu menu) {  // for + button
        // Inflate the menu; this adds items to the action bar if it is present.
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.create_new_details, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case R.id.home: // back to previous activity, < button
                onBackPressed();
            break;

            case R.id.addDetails:
                mClickedPosition = -1;
                View menuItemView = findViewById(R.id.addDetails);
                PopupMenu po = new PopupMenu(this, menuItemView); //for drop-down menu
                po.getMenuInflater().inflate(R.menu.popup_details, po.getMenu());
                po.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
                    public boolean onMenuItemClick(MenuItem item) {
                        Toast.makeText(getApplication(), "You Clicked : " + item.getTitle(), Toast.LENGTH_SHORT).show();
                        if ("Add Work Details".equals(item.getTitle())) {
                            Intent intent = new Intent(getApplication(), Add_Details_Information.class);  // go to Details class
                            startActivityForResult(intent, PROJECT_REQUEST_CODE);
                        } else {

                        }
                        return true;
                    }
                });
                po.show(); //showing popup menu
        }
        return super.onOptionsItemSelected(item);

    }

但只有 + 按钮有效。单击

【问题讨论】:

  • R.id.home 必须是 android.R.id.home
  • @MikeM。如果 ActionBar 上只有一个按钮,为什么我可以使用 case R.id.home:
  • 那么问题解决了吗?
  • 当您在右侧创建该按钮时,您正在定义其 ID,因此它将位于您包的资源中;只是简单的R。 Home Button是系统创建的,所以它的ID在系统Resources中; android.R.

标签: android button android-actionbar icons


【解决方案1】:

只需将R.id.home 更改为android.R.id.home

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-27
    • 2014-05-06
    • 1970-01-01
    相关资源
    最近更新 更多