不幸的是App停止了导航抽屉

时间:2015-01-01 10:21:11

标签: java android android-layout java-io

这是我的MainActivity.java文件。

MainActivity在app中运行时出错。我该怎么办?

public class MainActivity extends ActionBarActivity implements NavigationDrawerFragment.NavigationDrawerCallbacks {

private Button btnTutor;
private Button btnStudent;
private TextView repIssue;
private TextView appVersion;
/**
 * 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);

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

    setContentView(R.layout.activity_main);



    OnClickListener socialsClickListener = new OnClickListener(){
        @Override
        public void onClick(View v) {
            Intent viewIntent = null;
            viewIntent = new Intent(getApplicationContext(),  MainActivity.class);  
            viewIntent.putExtra("PAGE", getSocialClicked(v.getId()));
            startActivity(viewIntent);
        }           
    };

    // Loading Font Face
    Typeface tfTitle = Typeface.createFromAsset(getAssets(), "Roboto-Light.ttf");
    Typeface tfButtons = Typeface.createFromAsset(getAssets(), "Eraser.ttf");

    ((TextView) findViewById(R.id.txt_title)).setTypeface(tfTitle);

    btnTutor = (Button)findViewById(R.id.btn_tutor);
    btnTutor.setOnClickListener(socialsClickListener);
    btnTutor.setTypeface(tfButtons);

    btnStudent = (Button)findViewById(R.id.btn_student);
    btnStudent.setOnClickListener(socialsClickListener);
    btnStudent.setTypeface(tfButtons);

    repIssue = (TextView) findViewById(R.id.txt_report);
    repIssue.setOnClickListener(socialsClickListener);
    appVersion = (TextView) findViewById(R.id.txt_app_version);
    appVersion.setOnClickListener(socialsClickListener);
    mNavigationDrawerFragment = (NavigationDrawerFragment) getSupportFragmentManager()
            .findFragmentById(R.id.navigation_drawer);
    mTitle = getTitle();

}

@Override
public void onNavigationDrawerItemSelected(int position) {
    // update the main content by replacing fragments
    FragmentManager fragmentManager = getSupportFragmentManager();
    fragmentManager
            .beginTransaction()
            .replace(R.id.container,
                    PlaceholderFragment.newInstance(position + 1)).commit();
}

public void onSectionAttached(int number) {
    switch (number) {
    case 1:
        mTitle = getString(R.string.title_section1);
        break;
    case 2:
        mTitle = getString(R.string.title_section2);
        break;
    case 3:
        mTitle = getString(R.string.title_section3);
        break;
    }
}

public void restoreActionBar() {
    ActionBar actionBar = getSupportActionBar();
    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
    actionBar.setDisplayShowTitleEnabled(true);
    actionBar.setTitle(mTitle);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    if (!mNavigationDrawerFragment.isDrawerOpen()) {
        // Only show items in the action bar relevant to this screen
        // if the drawer is not showing. Otherwise, let the drawer
        // decide what to show in the action bar.
        getMenuInflater().inflate(R.menu.main, menu);
        restoreActionBar();
        return true;
    }
    return super.onCreateOptionsMenu(menu);
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();
    if (id == R.id.action_settings) {
        return true;
    }
    return super.onOptionsItemSelected(item);
}

/**
 * A placeholder fragment containing a simple view.
 */
public static class PlaceholderFragment extends Fragment {
    /**
     * The fragment argument representing the section number for this
     * fragment.
     */
    private static final String ARG_SECTION_NUMBER = "section_number";

    /**
     * Returns a new instance of this fragment for the given section number.
     */
    public static PlaceholderFragment newInstance(int sectionNumber) {
        PlaceholderFragment fragment = new PlaceholderFragment();
        Bundle args = new Bundle();
        args.putInt(ARG_SECTION_NUMBER, sectionNumber);
        fragment.setArguments(args);
        return fragment;
    }

    public PlaceholderFragment() {
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.fragment_main, container,
                false);
        return rootView;
    }

    @Override
    public void onAttach(Activity activity) {
        super.onAttach(activity);
        ((MainActivity) activity).onSectionAttached(getArguments().getInt(
                ARG_SECTION_NUMBER));
    }
}

private String getSocialClicked(int id){
    switch (id) {
    case R.id.btn_tutor:
        return "http://m.getedgeucated.com/sshs/dashboard/login.html";

    case R.id.btn_student:
        return "http://m.getedgeucated.com/sshs/timecheck.html";

    case R.id.txt_app_version:
        return "http://m.getedgeucated.com/sshs/appsupport.html";

    case R.id.txt_report:
        return "http://sshs.getedgeucated.com/chatsupport_redirect.html";

    default:
        return "";

    }
}

} ` 这是我的activity_main.xml。

`

<ImageView 
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="@dimen/activity_vertical_margin"
    android:layout_gravity="center"
    android:src="@drawable/getedgeucated_logo"
    android:adjustViewBounds="true"/>

<TextView 
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:gravity="center"
    android:textStyle="bold"
    android:text="@string/logo_desc"
    android:textColor="@android:color/darker_gray"
    android:textAppearance="?android:attr/textAppearanceMedium"/> 


<TextView 
    android:id="@+id/txt_title"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="@dimen/dp_margin"
    android:layout_gravity="center"
    android:gravity="center"
    android:textStyle="bold"
    android:text="@string/subtitle"
    android:textColor="@android:color/darker_gray"
    android:textAppearance="?android:attr/textAppearanceLarge"/> 


<RelativeLayout 
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_margin="5dip"
    android:orientation="vertical">

    <LinearLayout 
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:orientation="vertical">

        <Button
            android:id="@+id/btn_student"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_margin="@dimen/half_padding"
            android:background="@drawable/btn_home"
            android:gravity="center"
            android:text="I am a student"
            android:textColor="#ffffff"
            android:textSize="@dimen/text_size_large"
            android:textStyle="bold" />

   <Button 
        android:id="@+id/btn_tutor"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="I am a tutor"
        android:textStyle="bold"
        android:textColor="#ffffff"
        android:textSize="@dimen/text_size_large"
        android:background="@drawable/btn_home"
        android:layout_margin="@dimen/half_padding"/> 

  </LinearLayout> 

       <TextView
        android:id="@+id/txt_report"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:textStyle="bold"
        android:text="@string/report_issue"
        android:textColor="@color/background"
        android:textAppearance="?android:attr/textAppearanceSmall"/> 

     <TextView
         android:id="@+id/txt_app_version"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_alignParentBottom="true"
         android:layout_alignParentRight="true"
         android:text="@string/app_version"
         android:textAppearance="?android:attr/textAppearanceSmall"
         android:textColor="@color/background"
         android:textStyle="bold" />

`

我仍然遇到FATAL EXCEPTION错误:调试器中出现主Java.io.NullpointerException错误。

1 个答案:

答案 0 :(得分:0)

从这些步骤开始:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);


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

    mNavigationDrawerFragment.setUp(
            R.id.navigation_drawer,
            (DrawerLayout) findViewById(R.id.drawer_layout));

//The rest of your code