2013-08-23 120 views
1

在單擊Loginform的textview時,我正在向我的註冊表單重新顯示頁面。應用程序意外停止,請再試一次錯誤

在寫入註冊表格中的代碼之前它工作正常。但突然間(在註冊表單中寫入代碼之後),在登錄形式中單擊textview(「請註冊自己」)後,它開始給我提供上述錯誤。

查看logcat後,我才知道錯誤在註冊頁面。

這是我的註冊頁面代碼:

public class Register extends Activity implements OnClickListener,OnCheckedChangeListener { 

    String gender=null; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_register); 

     //Toast.makeText(getApplicationContext(),"Load" , Toast.LENGTH_LONG).show(); 

     Button btnRegister =(Button)findViewById(R.id.link_to_login); 

     final EditText edFullName=(EditText)findViewById(R.id.txtfname); 
     final EditText edUserName=(EditText)findViewById(R.id.txtusername); 
     final EditText edEmail=(EditText)findViewById(R.id.txtemail); 
     final RadioButton rbMale=(RadioButton)findViewById(R.id.rd_male); 
     final RadioButton rbFeMale=(RadioButton)findViewById(R.id.rd_female); 
     final EditText edDateOfBirth=(EditText)findViewById(R.id.txtdob); 
     final EditText edPassward=(EditText)findViewById(R.id.txtpassword); 

     rbFeMale.setOnCheckedChangeListener(new OnCheckedChangeListener() { 

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

       if(arg1==true) 
       { 
        gender="Female"; 
       } 
      } 
     }); 


     rbMale.setOnCheckedChangeListener(new OnCheckedChangeListener() { 

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

       if(arg1==true) 
       { 
        gender="Male"; 
       } 
      } 
     }); 

     final AlertDialog ad=new AlertDialog.Builder(this).create(); 
     btnRegister.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 
       CallSoap cs=new CallSoap(); 
       try 
       { 
        Boolean result=cs.Register(edFullName.getText().toString(), edUserName.getText().toString(), edEmail.getText().toString(), gender, edDateOfBirth.getText().toString(), edPassward.getText().toString()); 
        if (result==true) 
        { 
         Toast.makeText(getApplicationContext(),"Registered Sucessfully!!!" , Toast.LENGTH_LONG).show(); 
        } 
       } 
       catch(Exception ex) 
       { 
        ad.setMessage(ex.getMessage()); 
       } 


      } 
     }); 

     TextView tvBackLogin=(TextView)findViewById(R.id.link_to_login); 
     tvBackLogin.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 

       Intent intent = new Intent(Register.this,MainActivity.class); 
       //intent.putExtra(EXTRA_MESSAGE, etLoginID.getText().toString()); 
       startActivity(intent); 

      } 
     }); 



    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.register, menu); 
     return true; 
    } 

    @Override 
    public void onClick(View v) { 
     // TODO Auto-generated method stub 

    } 

    @Override 
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 
     // TODO Auto-generated method stub 

    } 

} 

這是我registration.xml

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/scrollView1" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentTop="true" 
    android:layout_marginLeft="15dp" 
    android:layout_marginTop="15dp" > 

    <LinearLayout 
     android:id="@+id/linearLayout1" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="16dp" 
     android:orientation="vertical" > 

     <TextView 
      android:id="@+id/textView1" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:text="Full Name" /> 

     <EditText 
      android:id="@+id/txtfname" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:ems="10" 
      android:inputType="textPersonName" > 

      <requestFocus /> 
     </EditText> 

     <TextView 
      android:id="@+id/tvRegister" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="5dp" 
      android:text="Username" /> 

     <EditText 
      android:id="@+id/txtusername" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:ems="10" 
      android:inputType="textPersonName" /> 

     <TextView 
      android:id="@+id/textView3" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="5dp" 
      android:text="Email ID" /> 

     <EditText 
      android:id="@+id/txtemail" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:ems="10" 
      android:inputType="textEmailAddress" /> 

     <TextView 
      android:id="@+id/textView6" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="5dp" 
      android:text="Gender" /> 

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

      <RadioButton 
       android:id="@+id/rd_male" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:checked="true" 
       android:text="Male" /> 

      <RadioButton 
       android:id="@+id/rd_female" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="Female" /> 
     </RadioGroup> 

     <TextView 
      android:id="@+id/textView4" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="5dp" 
      android:text="Date of Birth" /> 

     <EditText 
      android:id="@+id/txtdob" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:ems="10" 
      android:inputType="date" /> 

     <TextView 
      android:id="@+id/textView5" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="5dp" 
      android:text="Password" /> 

     <EditText 
      android:id="@+id/txtpassword" 
      android:layout_width="fill_parent" 
      android:layout_height="match_parent" 
      android:ems="10" 
      android:inputType="textPassword" /> 

     <Button 
      android:id="@+id/btnRegister" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="5dp" 
      android:text="Register" /> 

     <TextView 
      android:id="@+id/link_to_login" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="5dp" 
      android:gravity="center" 
      android:text="Already have account! Login here" /> 
    </LinearLayout> 

</ScrollView> 

堆棧跟蹤:

08-23 13:12:11.154: E/AndroidRuntime(9864): FATAL EXCEPTION: main 
08-23 13:12:11.154: E/AndroidRuntime(9864): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.androsqlapp/com.example.androsqlapp.Register}: java.lang.ClassCastException: android.widget.TextView 
08-23 13:12:11.154: E/AndroidRuntime(9864):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647) 
08-23 13:12:11.154: E/AndroidRuntime(9864):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663) 
08-23 13:12:11.154: E/AndroidRuntime(9864):  at android.app.ActivityThread.access$1500(ActivityThread.java:117) 
08-23 13:12:11.154: E/AndroidRuntime(9864):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931) 
08-23 13:12:11.154: E/AndroidRuntime(9864):  at android.os.Handler.dispatchMessage(Handler.java:99) 
08-23 13:12:11.154: E/AndroidRuntime(9864):  at android.os.Looper.loop(Looper.java:123) 
08-23 13:12:11.154: E/AndroidRuntime(9864):  at android.app.ActivityThread.main(ActivityThread.java:3683) 
08-23 13:12:11.154: E/AndroidRuntime(9864):  at java.lang.reflect.Method.invokeNative(Native Method) 
08-23 13:12:11.154: E/AndroidRuntime(9864):  at java.lang.reflect.Method.invoke(Method.java:507) 
08-23 13:12:11.154: E/AndroidRuntime(9864):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 
08-23 13:12:11.154: E/AndroidRuntime(9864):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 
08-23 13:12:11.154: E/AndroidRuntime(9864):  at dalvik.system.NativeStart.main(Native Method) 
08-23 13:12:11.154: E/AndroidRuntime(9864): Caused by: java.lang.ClassCastException: android.widget.TextView 
08-23 13:12:11.154: E/AndroidRuntime(9864):  at com.example.androsqlapp.Register.onCreate(Register.java:28) 
08-23 13:12:11.154: E/AndroidRuntime(9864):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
08-23 13:12:11.154: E/AndroidRuntime(9864):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611) 
08-23 13:12:11.154: E/AndroidRuntime(9864):  ... 11 more 

請幫助我。

+0

線28 Register.java請 – Raghunandan

回答

2

這是因爲

機器人:ID =「@ + ID/link_to_login」是TextView的,在你的代碼,你已經宣佈它的按鈕...所以變化它..

希望你能理解......這將幫助你....

+0

感謝SHANI,這是確切的問題 –

+1

這是正確答案。 –

1

在xml中,您已將其定義爲TextView,並且在onCreate中將其指定爲導致classCastexception的按鈕。改變它在XML /代碼,它應該工作

1

你有這樣的

<TextView // text view with id link_to_login 
     android:id="@+id/link_to_login" 

當初始化你有這樣的

Button btnRegister =(Button)findViewById(R.id.link_to_login); 

因此你類轉換異常

要麼改變你的TextView到按鈕

<Button 
    android:id="@+id/link_to_login" 

TextView btnRegister =(TextView)findViewById(R.id.link_to_login); 
+0

Thanx的解決方案 –

+0

@NavatKayAahe你也可以聲明那些最終editexts作爲一個類的成員,並初始化它創建如果你不想要最終修改器 – Raghunandan

+0

它會影響代碼? (意味着這些決賽是爲了什麼而寫的?) –

相關問題