2014-06-09 2 views
0

연결되어 있고 연결이 끊어진 응용 프로그램이 있습니다. 이 두 상태는 하나의 버튼으로 처리됩니다. 그러나 그것은 사용자에게 분명했습니다. 연결을 클릭하면 앱에서 연결을 끊고 버튼 이름을 변경해야합니다. 나는 이것을 다음과 같이하려고했다 :MenuItem에서 버튼의 제목을 설정하는 방법 ActionBar

@Override 
public boolean onMenuItemSelected(int panel, MenuItem item) { 

    showToast(item.getTitle().toString(), Toast.LENGTH_LONG); 

    if(item.getTitle().equals("Conectar") && 
      item.getItemId() == (R.id.connectionButton)) 
    { 
     ConnectProcess con = new ConnectProcess(Configuration.this); 
     con.execute(); 
     item.setTitle(getResources().getString(R.string.disconnect)); 
    } 
    else if(item.getTitle().equals("Desconectar") && 
      item.getItemId() == (R.id.connectionButton)) 
    { 
     LoadCompany loadCompany = new LoadCompany(Configuration.this); 
     loadCompany.execute(); 
     item.setTitle(getResources().getString(R.string.connect)); 
    } 

    return true; 
} 

나는 다음과 같은 예외가 발생한다. 누구든지이 문제를 해결하는 방법을 알고 있습니까?

06-09 15:08:26.140: E/AndroidRuntime(1219): FATAL EXCEPTION: main 
06-09 15:08:26.140: E/AndroidRuntime(1219): Process: com.sisteplantbrasil.prisma3mobilev2, PID: 1219 
06-09 15:08:26.140: E/AndroidRuntime(1219): java.lang.ClassCastException: com.android.internal.view.menu.ActionMenuItemView cannot be cast to android.view.MenuItem 
06-09 15:08:26.140: E/AndroidRuntime(1219):  at com.sisteplantbrasil.prisma3mobilev2.Configuration.setConnectionButtonText(Configuration.java:105) 
+0

여기 봐,이 당신을 도울 수 : 이 http://stackoverflow.com/questions/15726602/how-to-refer-menuitem-that-is-defined-in-menu-xml – Burn

+0

당신은 했는가 이 일을 잘하는 시도. – danny117

답변

0

LogCat을 더 많이 표시 할 수 있습니까? 오류를 작성하는 행은 쓰기 전용 일 수 있습니다.

하지만 질문을 이해한다면 "seText()"를 사용할 수 있습니다. 다음 코드 예

:

// 
button1=(Button) findViewById(R.id.yourButton); 
button1.setOnClickListener(yourListener); 
private OnClickListener yourListener = new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      button1.setText("Your New Txt"); 
    }; 
0

는지지 액션 바에서 액션 바 메뉴를 변경하는 방법. 슈퍼 메서드를 호출 supportInvalidateOptionsMenu();onCreateOptionsMenu 그러면 메뉴를 변경할 수있는 곳으로 호출됩니다. invalidateOptionsMenu() 메소드 마녀도 액션 바의 비 지원 버전에서 똑같은 작업을 수행합니다.

public class Whatever extends ActionBarActivity { 
boolean action_connect = false; 

public boolean onOptionsItemSelected(MenuItem item) { 

    int x = item.getItemId(); 
    switch (x) { 
    case R.id.action_connect: 
     action_connect = true; 
     super.supportInvalidateOptionsMenu(); 
     return true; 



@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    if (action_connect) { 
}