2014-04-15 180 views
0

我正在寫一個android代碼,如果用戶選擇一個特定的單選按鈕,然後點擊另一個按鈕,一個新的頁面應該打開。此外,一個微調的值是被傳遞到另一個頁面。當我執行我的代碼時,應用程序crashes.The代碼如下:無法轉到另一個活動點擊一個按鈕

public class LeaveApp extends Activity { 
private TextView Output1,Output2; 
EditText e1; 
    private Button changeDate1,changeDate2,btn1; 
    int flag1=0,flag2=0; 
    private int year; 
    private int month; 
    private int day; 
    private Spinner spinner2; 
    static final int DATE_PICKER_ID1 = 1111; 
    static final int DATE_PICKER_ID2 = 1110; 
    // RadioButton rb1,rb2; 
    RadioGroup rg2; 
    String locationSet = null; 
    String strLocation = null; 
    Location arrLocation; 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.leaveapp); 

     Output1 = (TextView) findViewById(R.id.textView7); 
     Output2= (TextView) findViewById(R.id.textView8); 
     changeDate1 = (Button) findViewById(R.id.button2); 
     changeDate2 = (Button) findViewById(R.id.button3); 
     spinner2=(Spinner) findViewById(R.id.spinner2); 
     btn1=(Button) findViewById(R.id.button1); 
     e1=(EditText) findViewById(R.id.editText1); 
     addItemsOnSpinner2(); 
     rg2=(RadioGroup) findViewById(R.id.radiogroup2); 
     rg2.setOnCheckedChangeListener(new OnCheckedChangeListener() 
     { 

      @Override 
      public void onCheckedChanged(RadioGroup arg0, int arg1) { 
       // TODO Auto-generated method stub 

       switch(arg1) 
       { 
       case R.id.radioButton5: 
        flag1=1; 
        break; 
       case R.id.radioButton6: 
        flag2=1; 
        break; 
       } 
      } 



     }); 
     spinner2.setOnItemSelectedListener(new MySpinnerSelectedListener()); 
     // Get current date by calender 

     /*final Calendar c = Calendar.getInstance(); 
     year = c.get(Calendar.YEAR); 
     month = c.get(Calendar.MONTH); 
     day = c.get(Calendar.DAY_OF_MONTH);*/ 

     final Calendar c = Calendar.getInstance(); 
     year=c.YEAR; 
     month=c.MONTH+1; 
     day=c.DAY_OF_MONTH; 

     // Button listener to show date picker dialog 


     changeDate1.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View v) { 

       // On button click show datepicker dialog 
       showDialog(DATE_PICKER_ID1); 

      } 

     }); 
     changeDate2.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 

       // On button click show datepicker dialog 
       showDialog(DATE_PICKER_ID2); 

      } 

     }); 


    btn1.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View arg0) { 
       // TODO Auto-generated method stub 
      if(e1.getText().length()==0 || (flag1==0 && flag2==0)) 
      { 
       Toast.makeText(getBaseContext(), "Please Enter all the fields!!",Toast.LENGTH_LONG).show(); 
      } 
      else if(flag1==1) 
      { 
       Intent i=new Intent(LeaveApp.this,TestSelect.class); 
       i.putExtra("data1", spinner2.getSelectedItem().toString()); 
       startActivity(i); 
      } 
      } 
     }); 
    } 
public void addItemsOnSpinner2() { 
     // TODO Auto-generated method stub 
     spinner2=(Spinner) findViewById(R.id.spinner2); 
     List<String> list2 = new ArrayList<String>(); 
     list2.add("I"); 
     list2.add("II"); 
     list2.add("III"); 
     list2.add("IV"); 
     list2.add("V"); 
     list2.add("VI"); 
     list2.add("VII"); 
     list2.add("VIII"); 
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item,list2); 
     dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
     spinner2.setAdapter(dataAdapter); 
    } 

    @Override 
    protected Dialog onCreateDialog(int id) { 
     switch (id) { 
     case DATE_PICKER_ID1: 


      // set date picker for current date 

      return new DatePickerDialog(this, pickerListener1, year, month,day); 


     case DATE_PICKER_ID2: 


      // set date picker for current date 

      return new DatePickerDialog(this, pickerListener2, year, month,day); 


     } 
     return null; 
    } 

    private DatePickerDialog.OnDateSetListener pickerListener1 = new DatePickerDialog.OnDateSetListener() { 

     // when dialog box is closed, below method will be called. 
     @Override 
     public void onDateSet(DatePicker view, int selectedYear, 
       int selectedMonth, int selectedDay) { 

      year = selectedYear; 
      month = selectedMonth; 
      day = selectedDay; 

      // Show selected date 
     /* Output1.setText(new StringBuilder().append(month + 1) 
        .append("-").append(day).append("-").append(year) 
        .append(" "));*/ 
      Output1.setText(new StringBuilder().append(day).append("-").append(month + 1) 
        .append("-").append(year).append(" ")); 


      } 
     }; 
     private DatePickerDialog.OnDateSetListener pickerListener2 = new DatePickerDialog.OnDateSetListener() { 

      // when dialog box is closed, below method will be called. 
      @Override 
      public void onDateSet(DatePicker view, int selectedYear, 
        int selectedMonth, int selectedDay) { 

       year = selectedYear; 
       month = selectedMonth; 
       day = selectedDay; 

       // Show selected date 

       Output2.setText(new StringBuilder().append(month + 1) 
         .append("-").append(day).append("-").append(year) 
         .append(" ")); 

       } 
      }; 
} 

public class TestSelect extends Activity { 

private Spinner spinner3,spinner2; 
private Button btn4; 
CharSequence[] options; 
boolean[] selections; 
String sem; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.testselect); 
    //spinner3=(Spinner) findViewById(R.id.spinner3); 
    spinner2=(Spinner) findViewById(R.id.spinner2); 
    Intent in=getIntent(); 
    sem=in.getStringExtra("data1"); 
    //addItemsOnSpinner3(); 
    addItemsOnButton(); 
    //System.out.println(sem); 
    btn4=(Button) findViewById(R.id.button4); 
    btn4.setOnClickListener(new ButtonClickHandler() ); 
} 
public class ButtonClickHandler implements View.OnClickListener { 
    public void onClick(View view) { 
     showDialog(0); 
    } 
} 

private void addItemsOnButton() { 
if(sem.equals("III")) 
    { 

     options=new CharSequence[]{"DSPD","CAO","BDP"}; 
     selections = new boolean[ options.length ]; 
    } 
    else if(sem.equals("IV")) 
    { 

     options=new CharSequence[] {"TOFCS","OOP","OS"}; 
     selections = new boolean[ options.length ]; 
    } 
    else if(sem.equals("V")) 
    { 
        options=new CharSequence[] {"MI","CG","SP"}; 
     selections = new boolean[ options.length ]; 
    } 
    else //if(spinner2.getSelectedItem()=="VI") 
    { 

     options=new CharSequence[] {"DAA","DBMS","ICWS"}; 
     selections = new boolean[ options.length ]; 
    } 
} 
@Override 
protected Dialog onCreateDialog(int id) 
{ 
    return 
    new AlertDialog.Builder(this) 
     .setTitle("SUBJECTS") 
     .setMultiChoiceItems(options, selections, new DialogSelectionClickHandler()) 
     .setPositiveButton("OK", new DialogButtonClickHandler()) 
     .create(); 
} 
public class DialogSelectionClickHandler implements DialogInterface.OnMultiChoiceClickListener 
{ 
    public void onClick(DialogInterface dialog, int clicked, boolean selected) 
    { 
     Log.i("ME", options[ clicked ] + " selected: " + selected); 
    } 
} 

public class DialogButtonClickHandler implements DialogInterface.OnClickListener 
{ 
    public void onClick(DialogInterface dialog, int clicked) 
    { 
     switch(clicked) 
     { 
      case DialogInterface.BUTTON_POSITIVE: 
       printSelectedSubjects(); 
       break; 
     } 
    } 

    private void printSelectedSubjects() { 
     // TODO Auto-generated method stub 
     for(int i = 0; i < options.length; i++){ 
      Log.i("ME", options[ i ] + " selected: " + selections[i]); 
     } 
    } 
} 

} 

在按一下按鈕,就應該從LeaveApp去TestSelect在特定radiobutto的選擇。請幫忙。

leaveapp.xml 

    <?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:baselineAligned="true" 
    android:orientation="vertical" 
    android:layout_marginLeft="26dp" 
     android:layout_marginTop="20dp"> 

    <ScrollView 
     android:id="@+id/scrollView1" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" > 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="380dp" 
      android:orientation="vertical" > 
       <TextView 
     android:id="@+id/textView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="LEAVE TYPE" 
     android:textAppearance="?android:attr/textAppearanceMedium" /> 
       <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:orientation="horizontal" > 

    <RadioGroup 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/radiogroup2" > 

    <RadioButton 
     android:id="@+id/radioButton5" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="TEST" 
     android:layout_marginTop="10dp" /> 


    <RadioButton 
     android:id="@+id/radioButton6" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="CASUAL" 
     android:layout_marginTop="10dp" /> 
    </RadioGroup> 
    </LinearLayout> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:orientation="horizontal" > 
    <TextView 
     android:id="@+id/textView2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="SEM" 
     android:textAppearance="?android:attr/textAppearanceMedium" 
     android:layout_marginTop="10dp" /> 
    <Spinner 
     android:id="@+id/spinner2" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginLeft="50dp" /> 
    </LinearLayout> 
    <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:orientation="horizontal" > 

    <TextView 
     android:id="@+id/textView3" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="REASON" 
     android:layout_marginTop="10dp" 
     android:textAppearance="?android:attr/textAppearanceMedium" /> 
     <EditText 
     android:id="@+id/editText1" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:ems="10" 
     android:layout_marginTop="10dp" 
     android:inputType="textPostalAddress" > 

     <requestFocus /> 
     </EditText> 
     </LinearLayout> 
     <TextView 
     android:id="@+id/textView4" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="LEAVE DURATION" 
     android:layout_marginTop="10dp" 
     android:textAppearance="?android:attr/textAppearanceMedium" /> 
     <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" > 
     <TextView 
     android:id="@+id/textView5" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="FROM" 
     android:layout_marginTop="10dp" 
     android:textAppearance="?android:attr/textAppearanceMedium" /> 

     <Button 
     android:id="@+id/button2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentRight="true" 
     android:layout_alignParentTop="true" 
     android:text="SELECT" /> 

     <TextView 
     android:id="@+id/textView7" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignBaseline="@+id/button2" 
     android:layout_alignBottom="@+id/button2" 
     android:layout_marginLeft="26dp" 
     android:layout_toRightOf="@+id/textView5" 
     android:text="" 
     android:textAppearance="?android:attr/textAppearanceMedium" /> 

     </RelativeLayout> 

     <RelativeLayout 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" > 

      <RelativeLayout 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:layout_alignParentLeft="true" 
       android:layout_alignParentTop="true" 
       android:layout_marginTop="10dp"> 

       <TextView 
        android:id="@+id/textView6" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_marginTop="50dp" 
        android:text="TO" 
        android:textAppearance="?android:attr/textAppearanceMedium" /> 

       <TextView 
        android:id="@+id/textView8" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_alignParentBottom="true" 
        android:layout_marginLeft="38dp" 
        android:layout_toRightOf="@+id/textView6" 
        android:text="" 
        android:textAppearance="?android:attr/textAppearanceMedium" /> 

       <Button 
        android:id="@+id/button3" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_alignParentBottom="true" 
        android:layout_alignParentRight="true" 
        android:text="SELECT" /> 

      </RelativeLayout> 

      </RelativeLayout> 

    <Button 
     android:id="@+id/button1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginLeft="100dp" 
     android:layout_marginTop="20dp" 
     android:text="NEXT" /> 

     </LinearLayout> 
     </ScrollView> 


    </LinearLayout> 


logcat 


11-09 00:51:26.302: D/AndroidRuntime(1483): Shutting down VM 
11-09 00:51:26.302: W/dalvikvm(1483): threadid=1: thread exiting with uncaught exception (group=0xb4b16b90) 
11-09 00:51:26.392: E/AndroidRuntime(1483): FATAL EXCEPTION: main 
11-09 00:51:26.392: E/AndroidRuntime(1483): Process: com.ara.quickaccess, PID: 1483 
11-09 00:51:26.392: E/AndroidRuntime(1483): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.ara.quickaccess/com.ara.quickaccess.TestSelect}: java.lang.NullPointerException 
11-09 00:51:26.392: E/AndroidRuntime(1483):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2102) 
11-09 00:51:26.392: E/AndroidRuntime(1483):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2226) 
11-09 00:51:26.392: E/AndroidRuntime(1483):  at android.app.ActivityThread.access$700(ActivityThread.java:135) 
11-09 00:51:26.392: E/AndroidRuntime(1483):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1397) 
11-09 00:51:26.392: E/AndroidRuntime(1483):  at android.os.Handler.dispatchMessage(Handler.java:102) 
11-09 00:51:26.392: E/AndroidRuntime(1483):  at android.os.Looper.loop(Looper.java:137) 
11-09 00:51:26.392: E/AndroidRuntime(1483):  at android.app.ActivityThread.main(ActivityThread.java:4998) 
11-09 00:51:26.392: E/AndroidRuntime(1483):  at java.lang.reflect.Method.invokeNative(Native Method) 
11-09 00:51:26.392: E/AndroidRuntime(1483):  at java.lang.reflect.Method.invoke(Method.java:515) 
11-09 00:51:26.392: E/AndroidRuntime(1483):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:777) 
11-09 00:51:26.392: E/AndroidRuntime(1483):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:593) 
11-09 00:51:26.392: E/AndroidRuntime(1483):  at dalvik.system.NativeStart.main(Native Method) 
11-09 00:51:26.392: E/AndroidRuntime(1483): Caused by: java.lang.NullPointerException 
11-09 00:51:26.392: E/AndroidRuntime(1483):  at com.ara.quickaccess.TestSelect.<init>(TestSelect.java:28) 
11-09 00:51:26.392: E/AndroidRuntime(1483):  at java.lang.Class.newInstanceImpl(Native Method) 
11-09 00:51:26.392: E/AndroidRuntime(1483):  at java.lang.Class.newInstance(Class.java:1208) 
11-09 00:51:26.392: E/AndroidRuntime(1483):  at android.app.Instrumentation.newActivity(Instrumentation.java:1061) 
11-09 00:51:26.392: E/AndroidRuntime(1483):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2093) 
11-09 00:51:26.392: E/AndroidRuntime(1483):  ... 11 more 
+2

發表您的logat然後 –

+0

發表您的日誌這裏... – Vamshi

+0

logcat 11-09 01:00:52.602:E/AndroidRuntime(1515):致命例外:主要 11-09 01:00:52.602:E/AndroidRuntime(1515):進程:com.ara.quickaccess,PID:1515 11-09 01:00:52.602:E/AndroidRuntime(1515):java.lang。 RuntimeException:無法啓動活動ComponentInfo {com.ara.quickaccess/com.ara.quickaccess.LeaveApp}:java.lang.ClassCastException:android.widget.TextView無法轉換爲android.widget.EditText 11-09 01:00 :52.602:E/AndroidRuntime(1515):\t在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2176) – user3523322

回答

0

請檢查您的EditText 「E1」 對象

e1=(EditText) findViewById(R.id.textView1); 

textView1TextViewEditTex噸ID。

根據你的logcat的ID textView1不是EditText所以只需更換

e1=(EditText) findViewById(R.id.textView1); 

e1=(TextView)findViewById(R.id.textView1); 

或使ID textView1EditText

+0

做到了,但仍然是應用程序崩潰 – user3523322

+0

它給與前一個相同的錯誤....? –

+0

是你取代e1 =(EditText)findViewById(R.id.textView1);與e1 =(EditText)findViewById(R.id.editText1); ...? –

相關問題