2014-06-30 2 views
0

작업 표시 줄 아이콘을 (를) Java 코드에서 동적으로 변경하는 방법은 무엇입니까?android : icon 동적으로 변경

이미지, 아이콘 번호 2

내가하고 싶은 것은 내가 가진 두 개의 아이콘 사이의 플립입니다 참조하십시오. 예를 들어, 사용자가 "검색 아이콘 [2]"를 클릭하면 월드 아이콘으로 변경됩니다.

코드가 있습니다.

<item android:id="@+id/actionMenu" 
      android:icon="@drawable/icon1" 
      android:showAsAction="ifRoom" /> 

menu.xml 그런 다음 우리는이 자바 코드의 메뉴를 inizializate :

@Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     MenuInflater inflater = getMenuInflater(); 
     inflater.inflate(R.menu.menu, menu); 
     return super.onCreateOptionsMenu(menu); 
    } 

그런 다음, 우리가이 문제를 처리하기 위해 이동합니다.
먼저, 클릭이 존재하는지 여부를 알기 위해 스위치를 만듭니다.

@Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     switch (item.getItemId()) { 
     case R.id.actionMenu: 
      changeIcon(); // Here we call that magic function 
      return true; 
     default: 
      return super.onOptionsItemSelected(item); 
     } 
    } 

그럼 changeIcon()을 호출합니다. 이 기능은 마법

private void changeIcon(){ 
     try { 
      if(this.theSwitcher){ 
       // What code need this function? 
       // I just need to change icon1 to icon2 
       this.theSwitcher = false; 
      } else { 
       // What code need this function? 
       // I just need to change icon2 to icon1 
       this.quince = true; 
      } 

     } catch (Exception e) { 
      Log.e("MyBad", "Error: " + e); 
     } 

    } 

답변

0

다음

private void changeIcon(){ 
     MenuItem mi = mMenu.findItem(R.id.actionMenu); 

     try { 
      if(this.theSwitcher){ 
       // What code need this function? 
       // I just need to change icon1 to icon2 
       mi.setIcon(R.drawable.icon2); 
       this.theSwitcher = false; 
      } else { 
       // What code need this function? 
       // I just need to change icon2 to icon1 
       mi.setIcon(R.drawable.icon1); 
       this.quince = true; 
      } 

     } catch (Exception e) { 
      Log.e("MyBad", "Error: " + e); 
     } 

    } 

그리고

public boolean onCreateOptionsMenu(Menu menu) { 
    MenuInflater inflater = getMenuInflater(); 
    inflater.inflate(R.menu.menu, menu); 
    return super.onCreateOptionsMenu(menu); 
    mMenu = menu; 
} 
+0

에하지만 코드가 변경되는 아이콘 응용 프로그램을 시도해야합니다. 작업 아이콘을 변경하고 싶습니다 ... 이미지의 예와 같이 검색 아이콘이 있습니다. 하지만 고마워. – wwwanaya

+0

@wwwanaya 제 편집을보고 시도하십시오. –

+0

이미 다른 해결책이 있습니다. 감사. – wwwanaya