点击更改图像?

时间:2013-12-16 05:38:09

标签: java android xml

我有一个上下文操作栏,我想在按下项目时更改图标。我有这个代码。

@Override
        public boolean onActionItemClicked(ActionMode mode, MenuItem item) {

            switch (item.getItemId()) {
            case R.id.menu_item1:

                mode.finish(); 
                return true;
            default:
                return false;
            }

        }

在xml中

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">

<item android:id="@+id/menu_item1"
      android:icon="@drawable/myNormalImage"
      android:title="x"
      android:showAsAction="always|withText" />


</menu>

当用户点击项目menu_item1时,我将设置另一个图像(按下的图像)。我该怎么办?

4 个答案:

答案 0 :(得分:1)

假设您要将其从@drawable/myNormalImage更改为@drawable/myAbnormalImage

@Override
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {

    switch (item.getItemId()) {
    case R.id.menu_item1:
        // change the icon first
        item.setIcon(R.drawable.myAbnormalImage);

        return true;
    default:
        return false;
    }
}

答案 1 :(得分:0)

使用on onOptionsItemSelected方法

@Override
  public boolean onOptionsItemSelected(MenuItem item) {
      switch (item.getItemId()) {
          case R.id.todaySched:

              // put your code here to change the icon
              return true;

          default:
              return super.onOptionsItemSelected(item);
      }
  }

答案 2 :(得分:0)

试试这个,

@Override
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {

    switch (item.getItemId()) {
    case R.id.menu_item1:
     item.setIcon(your_condition? R.drawable.your_img1 : R.drawable.your_img2);
    return true;
    default:
        return false;
    }
}

答案 3 :(得分:0)

你可以添加以下..希望这会对你有帮助

 @Override

 public boolean onActionItemClicked(ActionMode mode, MenuItem item) {

        switch (item.getItemId()) {
        case R.id.menu_item1:

           getActionBar().setIcon(R.drawable.xyz);
            return true;
        default:
            return false;
        }

    }