0

I am trying to add an onclick event for a submit button , but when I add the codes to my application it gets me error and crashes.

package info.androidhive.slidingmenu;
import info.androidhive.slidingmenu.adapter.NavDrawerListAdapter;
import info.androidhive.slidingmenu.model.NavDrawerItem;

import java.util.ArrayList;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.Fragment;
import android.app.FragmentManager;
import android.content.Intent;
import android.content.res.Configuration;
import android.content.res.TypedArray;
import android.os.Bundle;
import android.support.v4.app.ActionBarDrawerToggle;
import android.support.v4.widget.DrawerLayout;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.ListView;
import android.widget.Spinner;

public class MainActivity extends Activity {
    private Button btnCheckFal;
      private Spinner spinner1, spinner2, spinner3;
      private DrawerLayout mDrawerLayout;
        private ListView mDrawerList;
        private ActionBarDrawerToggle mDrawerToggle;

        // nav drawer title
        private CharSequence mDrawerTitle;

        // used to store app title
        private CharSequence mTitle;

        // slide menu items
        private String[] navMenuTitles;
        private TypedArray navMenuIcons;

        private ArrayList<NavDrawerItem> navDrawerItems;
        private NavDrawerListAdapter adapter;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        setContentView(R.layout.fragment_home);


        mTitle = mDrawerTitle = getTitle();

        // load slide menu items
        navMenuTitles = getResources().getStringArray(R.array.nav_drawer_items);

        // nav drawer icons from resources
        navMenuIcons = getResources()
                .obtainTypedArray(R.array.nav_drawer_icons);

        mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
        mDrawerList = (ListView) findViewById(R.id.list_slidermenu);

        navDrawerItems = new ArrayList<NavDrawerItem>();

        // adding nav drawer items to array
        // Home
        navDrawerItems.add(new NavDrawerItem(navMenuTitles[0], navMenuIcons.getResourceId(0, -1)));
        // Find People
        navDrawerItems.add(new NavDrawerItem(navMenuTitles[1], navMenuIcons.getResourceId(1, -1)));
        // Photos
        navDrawerItems.add(new NavDrawerItem(navMenuTitles[2], navMenuIcons.getResourceId(2, -1)));
        // Communities, Will add a counter here
        navDrawerItems.add(new NavDrawerItem(navMenuTitles[3], navMenuIcons.getResourceId(3, -1), true, "22"));
        // Pages
        navDrawerItems.add(new NavDrawerItem(navMenuTitles[4], navMenuIcons.getResourceId(4, -1)));
        // What's hot, We  will add a counter here
        navDrawerItems.add(new NavDrawerItem(navMenuTitles[5], navMenuIcons.getResourceId(5, -1), true, "50+"));


        // Recycle the typed array
        navMenuIcons.recycle();

        mDrawerList.setOnItemClickListener(new SlideMenuClickListener());



        // FAL Check
        btnCheckFal = (Button) findViewById(R.id.btnCheckFalNew);
        btnCheckFal.setOnClickListener(new View.OnClickListener() {

            public void onClick(View view) {
                Intent intent = new Intent(getBaseContext(), CheckFalActivity.class);
                intent.putExtra("day", String.valueOf(spinner1.getSelectedItem()));
                intent.putExtra("month", String.valueOf(spinner2.getSelectedItem()));
                intent.putExtra("year", String.valueOf(spinner3.getSelectedItem()));
                startActivity(intent);
            }
        });


    }
    /**
     * Slide menu item click listener
     * */
    private class SlideMenuClickListener implements
        ListView.OnItemClickListener {
        public void onItemClick(AdapterView<?> parent, View view, int position,
                long id) { }
    }


}

Now I have tried many cases but when I deactivate this part it gets right. And I need the onclick event for my submit button.

    // FAL Check
    btnCheckFal = (Button) findViewById(R.id.btnCheckFalNew);
    btnCheckFal.setOnClickListener(new View.OnClickListener() {

        public void onClick(View view) {
            Intent intent = new Intent(getBaseContext(), CheckFalActivity.class);
            intent.putExtra("day", String.valueOf(spinner1.getSelectedItem()));
            intent.putExtra("month", String.valueOf(spinner2.getSelectedItem()));
            intent.putExtra("year", String.valueOf(spinner3.getSelectedItem()));
            startActivity(intent);
        }
    });

I get this in catlog :

12-30 16:44:02.941: W/dalvikvm(3139): threadid=1: thread exiting with uncaught exception (group=0x40a71930)
12-30 16:44:02.961: E/AndroidRuntime(3139): FATAL EXCEPTION: main
12-30 16:44:02.961: E/AndroidRuntime(3139): java.lang.RuntimeException: Unable to start activity ComponentInfo{info.androidhive.slidingmenu/info.androidhive.slidingmenu.MainActivity}: java.lang.NullPointerException
12-30 16:44:02.961: E/AndroidRuntime(3139):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)
Farshad
  • 1,007
  • 1
  • 13
  • 24

1 Answers1

0

spinner1, spinner2 and spinner 3 are not initialized in your code. Probably you get a NPE on those. Set their value by findViewById and your problem is fixed probably.

Nasir
  • 1,982
  • 4
  • 19
  • 35