title: How to reference layout with two onClickListeners in different classes
body: <p>My question is in reference to the OnclickListner and java classes. I have an xml layout with two buttons; one (when clicked) triggers the "date" class, the other triggers the "email" class. The Email button is working fine, however when I try to set an on click listener to the "date" button, the app crashes(When Triggered). My goal is to be able to click the date button, display the datepicker. Here is my code.
  Hopefully this is enough information for anyone to assist me, Thanks everyone.</p>
  
  <p>XML:</p>
  
  <pre><code> &lt;?xml version="1.0" encoding="utf-8"?&gt;
  &lt;LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:weightSum="100"
  android:orientation="vertical"
  android:background="@color/white"&gt;
  
  &lt;ImageView
      android:id="@+id/imageView1"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:src="@drawable/bgklogo3" /&gt;
  
  &lt;TextView
      android:id="@+id/textView1"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:gravity="center"
      android:text="Schedule Service"
      android:textSize="20sp"
      android:textStyle="bold"
      android:textColor="@color/black"
      android:textAppearance="?android:attr/textAppearanceLarge" /&gt;
  
  &lt;ScrollView
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_weight="30" &gt;
  
  
  
      &lt;LinearLayout
          android:layout_width="fill_parent"
          android:layout_height="wrap_content"
          android:orientation="vertical" &gt;
  
          &lt;TextView
              android:id="@+id/textView2"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:gravity="center"
              android:textSize="20sp"
              android:textStyle="bold"
              android:textColor="@color/black"
              android:text="Your Information"
              android:textAppearance="?android:attr/textAppearanceSmall" /&gt;
  
          &lt;EditText
              android:id="@+id/firstName"
              android:layout_width="match_parent"
              android:layout_height="wrap_content"
              android:maxLength="20"
              android:singleLine="true"
              android:imeActionLabel="Next"
              android:hint="Enter First Name..." &gt;
  
  
          &lt;/EditText&gt;
  
          &lt;EditText
              android:id="@+id/lastName"
              android:layout_width="match_parent"
              android:layout_height="wrap_content"
              android:singleLine="true"
              android:imeActionLabel="Next"
              android:hint="Enter Last Name..." /&gt;
  
          &lt;EditText
              android:id="@+id/Email"
              android:layout_width="match_parent"
              android:layout_height="wrap_content"
              android:singleLine="true"
              android:imeActionLabel="Next"
              android:hint="Enter Email..."
              android:inputType="textEmailAddress" /&gt;
  
          &lt;EditText
              android:id="@+id/PhoneNumber"
              android:layout_width="match_parent"
              android:layout_height="wrap_content"
              android:singleLine="true"
              android:imeActionLabel="Next"
              android:hint="Enter Phone Number..."
              android:inputType="phone" /&gt;
  
          &lt;TextView
              android:id="@+id/textView3"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:gravity="center"
              android:textColor="@color/black"
              android:text="Vehicle Information"
              android:textSize="20sp"
              android:textStyle="bold"
              android:textAppearance="?android:attr/textAppearanceSmall" /&gt;
  
          &lt;LinearLayout
              android:id="@+id/linearLayout1"
              android:layout_width="match_parent"
              android:layout_height="wrap_content" &gt;
         &lt;!--      
           &lt;EditText
               android:id="@+id/tYear"
               android:layout_width="155dp"
               android:layout_height="wrap_content"
               android:singleLine="true"
              android:imeActionLabel="Next"
               android:hint="What year is it?"/&gt;
  
           &lt;EditText 
               android:id="@+id/tMake"
               android:layout_width="match_parent"
               android:layout_height="wrap_content"
               android:singleLine="true"
              android:imeActionLabel="Next"
               android:hint="What make is it?"/&gt;
  
           --&gt; 
  
  
              &lt;Spinner
                  android:id="@+id/sYear"
                  android:layout_width="155dp"
                  android:layout_height="wrap_content"
                  android:entries="@array/entries"
                  android:prompt="@string/prompt" /&gt;
  
              &lt;Spinner
                  android:id="@+id/sMake"
                  android:layout_width="match_parent"
                  android:layout_height="wrap_content"
                  android:entries="@array/entries2"
                  android:prompt="@string/prompt2" &gt;
              &lt;/Spinner&gt;
  
  
          &lt;/LinearLayout&gt; 
  
          &lt;EditText
              android:id="@+id/Model"
              android:layout_width="match_parent"
              android:layout_height="wrap_content"
              android:singleLine="true"
              android:imeActionLabel="Next"
              android:hint="Enter Model..." /&gt;
  
          &lt;TextView
              android:id="@+id/textView4"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:gravity="center"
              android:textColor="@color/black"
              android:hint="Service Information"
              android:textSize="20sp"
              android:textStyle="bold"
              android:textAppearance="?android:attr/textAppearanceSmall" /&gt;
  
  
  
          &lt;LinearLayout
              android:id="@+id/linearLayout2"
              android:layout_width="match_parent"
              android:layout_height="wrap_content"
              android:layout_weight="30" &gt;
  
            &lt;!--    &lt;EditText
                  android:id="@+id/tpickDate"
                  android:layout_width="fill_parent"
                  android:layout_height="wrap_content"
                  android:singleLine="true"
                  android:imeActionLabel="Next"
                  android:hint="Enter service date..."/&gt;
         --&gt;
  
  
              &lt;Button
                  android:id="@+id/pickDate"
                  android:layout_width="142dp"
                  android:layout_height="wrap_content"
                  android:text="Service Date: "
                  android:onClick="onClick"/&gt;
  
              &lt;TextView
                  android:id="@+id/dateDisplay"
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
  
                  android:text="@+id/dateDisplay"
                  android:textSize="20sp" /&gt;
                  --&gt;
          &lt;/LinearLayout&gt;
        &lt;!--   
          &lt;EditText 
              android:id="@+id/tTime"
              android:layout_width="match_parent"
              android:layout_height="wrap_content"
              android:singleLine="true"
              android:imeActionLabel="Next"
              android:hint="Enter service time..." /&gt;
  
          &lt;EditText 
              android:id="@+id/tNeeded"
              android:layout_width="match_parent"
              android:layout_height="wrap_content"
              android:singleLine="true"
              android:imeActionLabel="Next"
              android:hint="Enter service needed..." /&gt;
              --&gt; 
  
  
  
          &lt;Spinner
              android:id="@+id/sTime"
              android:layout_width="match_parent"
              android:layout_height="wrap_content"
              android:entries="@array/entries3"
              android:prompt="@string/prompt3" /&gt;
  
          &lt;Spinner
              android:id="@+id/sNeeded"
              android:layout_width="match_parent"
              android:layout_height="wrap_content"
              android:entries="@array/entries4"
              android:prompt="@string/prompt4" /&gt;
  
  
  
          &lt;EditText
              android:id="@+id/eComments"
              android:layout_width="match_parent"
              android:layout_height="wrap_content"
              android:singleLine="true"
              android:imeActionLabel="Next"
              android:hint="Enter Comments Here..."
              android:inputType="textMultiLine" /&gt;
      &lt;/LinearLayout&gt;
    &lt;/ScrollView&gt; 
  
  
  
  
  &lt;LinearLayout
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:layout_weight="40"
      android:orientation="vertical" &gt;        
  
       &lt;Button
      android:id="@+id/bSentEmail"
      android:layout_width="250dp"
      android:layout_height="wrap_content"
      android:layout_gravity="center"
      android:text="Submit"
      android:textSize="20dp"
      android:onClick="handleClick"
      /&gt;
  
  &lt;/LinearLayout&gt;
  
  
  &lt;/LinearLayout&gt;
  </code></pre>
  
  <p>Date Class:</p>
  
  <pre><code>import java.util.Calendar;
  import java.util.Date;
  
  import android.app.Activity;
  import android.app.DatePickerDialog;
  import android.app.Dialog;
  import android.content.Intent;
  import android.os.Bundle;
  import android.text.method.KeyListener;
  import android.view.KeyEvent;
  import android.view.View;
  import android.view.View.OnClickListener;
  import android.view.inputmethod.EditorInfo;
  import android.widget.Button;
  import android.widget.DatePicker;
  import android.widget.Spinner;
  import android.widget.EditText;
  import android.widget.TextView;
  import android.widget.TextView.OnEditorActionListener;
  import android.widget.Toast;
  
  public class ScheduleService extends Activity implements OnClickListener {
  EditText /* serviceTime, serviceNeeded, vehicleYear, vehicleMake, */
          personsFirstName,
          personsLastName,
          personsEmail,
          personsPhone,
          comments,
          vehicleModel;
  Spinner serviceTime, serviceNeeded, vehicleYear, vehicleMake;
  TextView serviceDate;
  String fname, lname, phoneNumber, vehicleYears, vehicleModeltrim,
          vehicleManu, serviceAppointment, serviceAppointmentTime,
          serviceTypeNeeded, extraComments, emailAdd, emailaddress, message;
  Button sendEmail, PickDate ;
  private TextView mDateDisplay;
   private Button mPickDate;
   private int mYear;
   private int mMonth;
   private int mDay;
  
  
   static final int DATE_DIALOG_ID = 0;
  
  @Override
  protected void onCreate(Bundle savedInstanceState) {
      // TODO Auto-generated method stub
      super.onCreate(savedInstanceState);
      setContentView(R.layout.service);
      initialize();
  
      PickDate.setOnClickListener(this);
  
  
  }
  
  public void onClick(){
       //
          mDateDisplay = (TextView)  findViewById(R.id.dateDisplay);
          mPickDate = (Button) findViewById(R.id.pickDate);
  
          // add a click listener to the button
          mPickDate.setOnClickListener(new View.OnClickListener() {
              public void onClick(View v) {
                  showDialog(DATE_DIALOG_ID);
              }
          });
  
          // get the current date
          final Calendar c = Calendar.getInstance();
          mYear = c.get(Calendar.YEAR);
          mMonth = c.get(Calendar.MONTH);
          mDay = c.get(Calendar.DAY_OF_MONTH);
  
          // display the current date
          updateDisplay();
      }
      @Override
      protected Dialog onCreateDialog(int id) {
          switch (id) {
          case DATE_DIALOG_ID:
              return new DatePickerDialog(this,
                          mDateSetListener,
                          mYear, mMonth, mDay);
          }
          return null;
      }
  
      // updates the date we display in the TextView
      private void updateDisplay() {
          mDateDisplay.setText(
              new StringBuilder()
                      // Month is 0 based so add 1
                      .append(mMonth + 1).append("-")
                      .append(mDay).append("-")
                      .append(mYear).append(" "));
      }
      // the callback received when the user "sets" the date in the dialog
      private DatePickerDialog.OnDateSetListener mDateSetListener =
              new DatePickerDialog.OnDateSetListener() {
  
                  public void onDateSet(DatePicker view, int year,
                                        int monthOfYear, int dayOfMonth) {
                      mYear = year;
                      mMonth = monthOfYear;
                      mDay = dayOfMonth;
                      updateDisplay();
                  }
      };
  
  
  
  // Use the following commented fields for future Spinner properties
  private void initialize() {
      // TODO Auto-generated method stub
      personsFirstName = (EditText) findViewById(R.id.firstName);
      personsLastName = (EditText) findViewById(R.id.lastName);
      personsEmail = (EditText) findViewById(R.id.Email);
      personsPhone = (EditText) findViewById(R.id.PhoneNumber);
      vehicleYear = (Spinner) findViewById(R.id.sYear);
      vehicleMake = (Spinner) findViewById(R.id.sMake);
      // vehicleYear = (EditText) findViewById(R.id.tYear);
      // vehicleMake = (EditText) findViewById(R.id.tMake);
      vehicleModel = (EditText) findViewById(R.id.Model);
      serviceDate = (TextView) findViewById(R.id.dateDisplay);
      serviceTime = (Spinner) findViewById(R.id.sTime);
      serviceNeeded = (Spinner) findViewById(R.id.sNeeded);
      // serviceTime = (EditText) findViewById(R.id.tTime);
      // serviceNeeded = (EditText) findViewById(R.id.tNeeded);
      comments = (EditText) findViewById(R.id.eComments);
      sendEmail = (Button) findViewById(R.id.bSentEmail);
      PickDate = (Button) findViewById(R.id.pickDate);
  
  }
  
  public void handleClick(View v) {
  
      // TODO Auto-generated method stub
      conversion();
      String emailaddress[] = { "some@email.com" };
      String message = "Please Review the following:" + '\n' + " " + '\n'
              + "First Name: " + fname + '\n' + "Last Name: " + lname + '\n'
              + "Email :" + emailAdd + '\n' + "Phone Number: " + phoneNumber
              + '\n' + "Vechile Year: " + vehicleYears + '\n'
              + "Vehicle Make: " + vehicleManu + '\n' + "Vehicle Model: "
              + vehicleModeltrim + '\n' + "Requested Service Date: "
              + serviceAppointment + '\n' + "Requested Service Time: "
              + serviceAppointmentTime + '\n' + "Service Needed: "
              + serviceTypeNeeded + '\n' + "Comments: " + extraComments;
  
      Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
      emailIntent.setType("vnd.android.cursor.dir/email");
      emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL,
              new String[] { "some@email.com" });
      emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, emailaddress);
      emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT,
              "Mobile App: Schedule Service Request");
      emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, message);
      startActivity(Intent.createChooser(emailIntent,
              "Please select Email Client"));
  
  }
  
  private void conversion() {
      // TODO Auto-generated method stub
      fname = personsFirstName.getText().toString();
      lname = personsLastName.getText().toString();
      emailAdd = personsEmail.getText().toString();
      phoneNumber = personsPhone.getText().toString();
  
      // vehicleYears = vehicleYear.getText().toString();// Text field
      // substitute for spinner adapter
      // vehicleManu = vehicleMake.getText().toString(); // Text field
      // substitute for spinner adapter
      vehicleYears = (String) vehicleYear.getSelectedItem().toString();
      vehicleManu = (String) vehicleMake.getSelectedItem().toString();
      vehicleModeltrim = vehicleModel.getText().toString();
      serviceAppointment = serviceDate.getText().toString();
      // serviceAppointmentTime = serviceTime.getText().toString();
      // serviceTypeNeeded = serviceNeeded.getText().toString();
  
      serviceAppointmentTime = (String) serviceTime.getSelectedItem()
              .toString();
      serviceTypeNeeded = (String) serviceNeeded.getSelectedItem().toString();
      extraComments = comments.getText().toString();
  }
  
  public void onClick(View v) {
      // TODO Auto-generated method stub
  
  }
  
  @Override
  protected void onPause() {
      // TODO Auto-generated method stub
      super.onPause();
      finish();
  
  }
  
  @Override
  protected void onDestroy() {
      super.onDestroy();
      {
  
      }
  
  }
  </code></pre>
  
  <p>}</p>