2013-12-16 2 views
-1

문맥에 맞는 작업 표시 줄이있어서 항목을 누를 때 아이콘을 변경하고 싶습니다. 나는이 코드를 가지고있다. 클릭하면 이미지가 변경됩니까?

<?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> 

XML

에서

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

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

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

     } 

때 항목에 사용자가 클릭 menu_item1 내가 다른 이미지 (가압 이미지)를 설정하는 것이다. 어떻게해야합니까?

+0

Android 3.0 이상에서 코드를 실행하는 경우 메뉴의 아이콘이 의도적으로 표시되지 않습니다. 원하는 이유는 무엇입니까? –

답변

1

이의 당신이 시도 @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; 
    } 
} 
+0

내 문제가 해결되었습니다. 감사. – user3103764

+0

당신을 환영합니다 =) – peter

0

사용

@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); 
     } 
    } 
0

@drawable/myNormalImage에서 변경하고 싶은 말은하자 onOptionsItemSelected 방법에,

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

    } 
관련 문제