2013-04-17 3 views
0

В моих программах класса ProjectFragActivtiy встречается исключение какandroid: ClassCastException при работе с контекстным меню?

java.lang.ClassCastException: com.actionbarsherlock.internal.view.menu.MenuBuilder 
at com.oj.bs.ProjectFragActivity.onCreateOptionsMenu 
(ProjectFragActivity.java:49). 

в приложениях Кнопка меню используется для работы выхода из системы, но встречаются исключения. Есть ли другой способ реализовать меню в actionbarsherlock. У кого-нибудь есть решение? Заранее спасибо.

следующего класса ProjectFragActivtiy

package com.oj.bs; 

import android.os.Bundle; 
import android.view.View; 
import android.widget.Toast; 

import com.actionbarsherlock.app.ActionBar; 
import com.actionbarsherlock.app.ActionBar.Tab; 
import com.actionbarsherlock.app.SherlockFragmentActivity; 
import com.actionbarsherlock.view.Menu; 

public class ProjectFragActivity extends SherlockFragmentActivity { 

    SessionManager sessionMngr ; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     sessionMngr = new SessionManager(getApplicationContext()); 

     Toast.makeText(getApplicationContext(), "User Login Status: " + sessionMngr .isLoggedIn(), 
       Toast.LENGTH_LONG).show(); 
     sessionMngr.checkLogin(); 

     ActionBar actionBar = getSupportActionBar(); 
     actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); 
     actionBar.setDisplayShowTitleEnabled(true); 

     Tab tab = actionBar.newTab(). 
       setText("Residential"). 
       setTabListener(new ResidentialFragActivity()). 
       setIcon(R.drawable.residential); 
     actionBar.addTab(tab); 

     tab = actionBar.newTab(). 
       setText("Commercial"). 
       setTabListener(new CommercialFragActivity()). 
       setIcon(R.drawable.commercial); 

     actionBar.addTab(tab); 

    } 
    public void Logout(View v) { 
     sessionMngr.logoutUser(); 
    } 
    @Override 
    public boolean onCreateOptionsMenu(Menu m) { 
     getMenuInflater().inflate(R.menu.menu_logout, (android.view.Menu) m); 
     return true; 
    } 

} 

ответ

1

Изменения onCreateOptionsMenu() следующих

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    com.actionbarsherlock.view.MenuInflater inflater = getSupportMenuInflater(); 
    inflater.inflate(R.menu.menu_logout, (com.actionbarsherlock.view.Menu) menu); 
    return true; 
} 

Примечание:

Для того, чтобы надуть меню из XML вы должны вызвать getSupportMenuInflater() в вашем виды деятельности. В обратном вызове фрагмента уже есть экземпляр надувателя в качестве аргумента.

+0

Mr.Shankar Я интегрирую код выше, но столкнулся с исключением как android.view.InflateException: Не удалось разрешить пункт меню onClick handler Выход из класса com.ojaswitech.bookinscape.ProjectFragActivity. Вы можете мне помочь. – Nilesh

+0

проверить мои обновленные анны и посмотреть ссылку http://stackoverflow.com/q/11245829/1329126 –

Смежные вопросы