2014-04-25 2 views
2

Я попытался открыть окно ActionBarActivity после нажатия кнопки счетчика.Как пройти ActionBarAcivity как намерение?

На моем счетчике есть два элемента, второй работает нормально, но когда я попытался получить доступ к элементу Categorias, приложение бросает мне NullPointerException внутри класса DrawerActivity. Я не знаю, где проблема. Другой класс расширения ActionBarActivity, который у меня отлично работает. Я новичок в разработке Android/Java.

Вертушка Фрагмент

import inmostla.ligatangamanga.pruebaintegrar.navigationdrawer.NavigationDrawerActivity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.support.v4.app.Fragment; 
import android.support.v7.app.ActionBarActivity; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.AdapterView; 
import android.widget.Spinner; 
import android.widget.AdapterView.OnItemSelectedListener; 

public class SpinnerFragment extends Fragment { 

private static Spinner spinner; 
private int selected; 
private View mView; 

static void setSpinnerContent(View view){ 
    spinner = (Spinner) view.findViewById(R.id.spinner1); 

    return ; 
} 

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
    View view = inflater.inflate(R.layout.fragment_spinner, container, false); 
// Now use the above view to populate the spinner. 
    setSpinnerContent(view); 

    /** 
    * Maneja las acciones seleccionadas del Spinner 
    */ 
    spinner.setOnItemSelectedListener(new OnItemSelectedListener() { 
     @Override 
     public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) { 


      selected = spinner.getSelectedItemPosition(); 
      switch(selected){ 
      case 1: 
       Intent categorias = new Intent(); 

       categorias.setClass(getActivity() , NavigationDrawerActivity.class); 
       startActivity(categorias); 
       break; 
      case 2: 

       Intent convenios = new Intent(); 
       convenios.setClass(getActivity(), ConveniosFragment.class); 
       startActivity(convenios); 

       break; 
      } 

     } 

     @Override 
     public void onNothingSelected(AdapterView<?> arg0) { 
     } 

    }); 

return view; 
} 

} 

Navigation Drawer Activity простирается ActionBarActivity

package inmostla.ligatangamanga.pruebaintegrar.navigationdrawer; 

import inmostla.ligatangamanga.pruebaintegrar.navigationdrawer.NavigationDrawerFragment; 
import inmostla.ligatangamanga.pruebaintegrar.R; 

import android.app.Activity; 
import android.support.v7.app.ActionBarActivity; 
import android.support.v7.app.ActionBar; 
import android.support.v4.app.Fragment; 
import android.support.v4.app.FragmentManager; 
import android.support.v4.widget.DrawerLayout; 
import android.os.Bundle; 
import android.view.LayoutInflater; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.view.View; 
import android.view.ViewGroup; 

public class NavigationDrawerActivity extends ActionBarActivity implements 
    NavigationDrawerFragment.NavigationDrawerCallbacks { 

/** 
* Fragment managing the behaviors, interactions and presentation of the 
* navigation drawer. 
*/ 
private NavigationDrawerFragment mNavigationDrawerFragment; 

/** 
* Used to store the last screen title. For use in 
* {@link #restoreActionBar()}. 
*/ 
private CharSequence mTitle; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.navigation_drawer); 

    mNavigationDrawerFragment = (NavigationDrawerFragment) getSupportFragmentManager() 
      .findFragmentById(R.id.navigation_drawer); 
    mTitle = getTitle(); 

    // Set up the drawer. 
    mNavigationDrawerFragment.setUp(R.id.navigation_drawer, 
      (DrawerLayout) findViewById(R.id.drawer_layout)); 
}... 

ответ

0

Может быть, это потому, что getActivity() возвращает нуль. Попробуйте переопределить onAttach() и сохранить ссылку Activity как поле вашего класса. Используйте эту ссылку вместо getActivity(), когда вам нужна ссылка на контекст или активность.

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