2012-02-25 42 views
1

这是我的logcat给我的错误。我知道它与我的editText有关,但我不确定是什么。我希望它的一个愚蠢的错误,可以快速和容易地修复,所以我可以继续工作尽快。帮我,如果你可以Stackoverflow谢谢!不知道如何理解logcat告诉我的是错误

<?xml version="1.0" encoding="utf-8"?> 
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" > 

    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:orientation="vertical" > 

     <RelativeLayout 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" > 

      <TextView 
       android:id="@+id/contacts" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:layout_marginBottom="10dp" 
       android:gravity="center" 
       android:paddingBottom="10dp" 
       android:paddingLeft="10dp" 
       android:paddingTop="10dp" 
       android:text="@string/contacts" 
       android:textAppearance="?android:attr/textAppearanceLarge" 
       android:textColor="#fff" /> <!-- android:background="@drawable/header" for header background --> 

      <Button 
       android:id="@+id/contactsButton" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_alignParentRight="true" 
       android:layout_alignParentTop="true" 
       android:text="@string/contacts" /> 
     </RelativeLayout> 

     <TextView 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:text="@string/enter_contact" 
      android:textAppearance="?android:attr/textAppearanceMedium" /> 

     <AutoCompleteTextView 
      android:id="@+id/contactnumber" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:hint="@string/to" > 

      <requestFocus /> 
     </AutoCompleteTextView> 

     <TextView 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:text="@string/message_to_send" 
      android:textAppearance="?android:attr/textAppearanceMedium" /> 

     <EditText 
      android:id="@+id/invite_text" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:text="@string/message_join" /> 

     <Button 
      android:id="@+id/sendtxt" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:onClick="doLaunchContactPicker" 
      android:text="@string/send_txt" /> 
    </LinearLayout> 

</ScrollView> 

这是一个运行它的类:只有当程序运行

02-25 16:30:19.417: E/AndroidRuntime(15259): FATAL EXCEPTION: main 
    02-25 16:30:19.417: E/AndroidRuntime(15259): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.Wicker/com.Wicker.InviteSMS}: java.lang.ClassCastException: android.widget.EditText 
    02-25 16:30:19.417: E/AndroidRuntime(15259): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1816) 
    02-25 16:30:19.417: E/AndroidRuntime(15259): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1837) 
    02-25 16:30:19.417: E/AndroidRuntime(15259): at android.app.ActivityThread.access$1500(ActivityThread.java:132) 
    02-25 16:30:19.417: E/AndroidRuntime(15259): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1033) 
    02-25 16:30:19.417: E/AndroidRuntime(15259): at android.os.Handler.dispatchMessage(Handler.java:99) 
    02-25 16:30:19.417: E/AndroidRuntime(15259): at android.os.Looper.loop(Looper.java:143) 
    02-25 16:30:19.417: E/AndroidRuntime(15259): at android.app.ActivityThread.main(ActivityThread.java:4196) 
    02-25 16:30:19.417: E/AndroidRuntime(15259): at java.lang.reflect.Method.invokeNative(Native Method) 
    02-25 16:30:19.417: E/AndroidRuntime(15259): at java.lang.reflect.Method.invoke(Method.java:507) 
    02-25 16:30:19.417: E/AndroidRuntime(15259): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 
    02-25 16:30:19.417: E/AndroidRuntime(15259): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 
    02-25 16:30:19.417: E/AndroidRuntime(15259): at dalvik.system.NativeStart.main(Native Method) 
    02-25 16:30:19.417: E/AndroidRuntime(15259): Caused by: java.lang.ClassCastException: android.widget.EditText 
    02-25 16:30:19.417: E/AndroidRuntime(15259): at com.Wicker.InviteSMS.onCreate(InviteSMS.java:48) 
    02-25 16:30:19.417: E/AndroidRuntime(15259): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1093) 
    02-25 16:30:19.417: E/AndroidRuntime(15259): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1780) 
    02-25 16:30:19.417: E/AndroidRuntime(15259): ... 11 more 

这是我的xml文件时

错误。

public class InviteSMS extends Activity { 

    private static final int CONTACT_PICKER_RESULT = 1001; 
    private static final String DEBUG_TAG = null; 

    private SimpleAdapter mAdapter; 

    Button btnSendSMS; 
    AutoCompleteTextView txtPhoneNo; 
    Button Attachment; 
    Button contactsbutton; 
    Button gallery; 
    EditText txtMessage; 

    Context context = this; 

    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.invite_text); 

     btnSendSMS = (Button) findViewById(R.id.sendtxt); 
     txtPhoneNo = (AutoCompleteTextView) findViewById(R.id.contactnumber); 
     txtMessage = (EditText) findViewById(R.id.invite_text); 
     contactsbutton = (Button) findViewById(R.id.contactsButton); 

     txtPhoneNo.setAdapter(mAdapter); 

     btnSendSMS.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
       String phoneNo = txtPhoneNo.getText().toString(); 
       String message = txtMessage.getText().toString(); 

       if (phoneNo.length() > 0 && message.length() > 0) 
        sendSMS(phoneNo, message); 
       else 
        Toast.makeText(getBaseContext(), 
          "Please enter both phone number and message.", 
          Toast.LENGTH_SHORT).show(); 
      } 

     }); 
     contactsbutton.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View view) { 

       Intent contactPickerIntent = new Intent(Intent.ACTION_PICK, 
         Contacts.CONTENT_URI); 
       startActivityForResult(contactPickerIntent, 
         CONTACT_PICKER_RESULT); 

      } 
     }); 
    } 

    private void sendSMS(String phoneNumber, String message) { 
     PendingIntent pi = PendingIntent.getActivity(this, 0, new Intent(this, 
       InviteSMS.class), 0); 

     String SENT = "SMS_SENT"; 
     String DELIVERED = "SMS_DELIVERED"; 

     PendingIntent sentPI = PendingIntent.getBroadcast(this, 0, new Intent(
       SENT), 0); 

     PendingIntent deliveredPI = PendingIntent.getBroadcast(this, 0, 
       new Intent(DELIVERED), 0); 
     registerReceiver(new BroadcastReceiver() { 

      @Override 
      public void onReceive(Context arg0, Intent arg1) { 
       switch (getResultCode()) { 
       case Activity.RESULT_OK: 
        Toast.makeText(getBaseContext(), "SMS sent", 
          Toast.LENGTH_SHORT).show(); 
        break; 
       case SmsManager.RESULT_ERROR_GENERIC_FAILURE: 
        Toast.makeText(getBaseContext(), "Generic failure", 
          Toast.LENGTH_SHORT).show(); 
        break; 
       case SmsManager.RESULT_ERROR_NO_SERVICE: 
        Toast.makeText(getBaseContext(), "No service", 
          Toast.LENGTH_SHORT).show(); 
        break; 
       case SmsManager.RESULT_ERROR_NULL_PDU: 
        Toast.makeText(getBaseContext(), "Null PDU", 
          Toast.LENGTH_SHORT).show(); 
        break; 
       case SmsManager.RESULT_ERROR_RADIO_OFF: 
        Toast.makeText(getBaseContext(), "Radio off", 
          Toast.LENGTH_SHORT).show(); 
        break; 
       } 
      } 
     }, new IntentFilter(SENT)); 

     // ---when the SMS has been delivered--- 
     registerReceiver(new BroadcastReceiver() { 
      @Override 
      public void onReceive(Context arg0, Intent arg1) { 
       switch (getResultCode()) { 
       case Activity.RESULT_OK: 
        Toast.makeText(getBaseContext(), "SMS delivered", 
          Toast.LENGTH_SHORT).show(); 
        break; 
       case Activity.RESULT_CANCELED: 
        Toast.makeText(getBaseContext(), "SMS not delivered", 
          Toast.LENGTH_SHORT).show(); 
        break; 
       } 
      } 
     }, new IntentFilter(DELIVERED)); 

     SmsManager sms = SmsManager.getDefault(); 
     sms.sendTextMessage(phoneNumber, null, message, sentPI, deliveredPI); 
    } 

    @Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     if (resultCode == RESULT_OK) { 
      switch (requestCode) { 
      case CONTACT_PICKER_RESULT: 
       Cursor cursor = null; 
       String phone = ""; 
       try { 
        Bundle extras = data.getExtras(); 
        Set<String> keys = extras.keySet(); 
        Iterator<String> iterate = keys.iterator(); 
        while (iterate.hasNext()) { 
         String key = iterate.next(); 
         Log.v(DEBUG_TAG, key + "[" + extras.get(key) + "]"); 
        } 

        Uri result = data.getData(); 
        Log.v(DEBUG_TAG, 
          "Got a contact result: " + result.toString()); 

        // get the contact id from the Uri 
        String id = result.getLastPathSegment(); 

        cursor = getContentResolver().query(Phone.CONTENT_URI, 
          null, Phone.CONTACT_ID + "=?", new String[] { id }, 
          null); 

        int phoneIdx = cursor.getColumnIndex(Phone.DATA); 

        if (cursor.moveToFirst()) { 

         phone = cursor.getString(phoneIdx); 

         Log.v(DEBUG_TAG, "Got Contact: " + phone); 

        } else { 
         Log.w(DEBUG_TAG, "No results"); 
        } 
       } catch (Exception e) { 
        Log.e(DEBUG_TAG, "Failed to get phone data", e); 
       } finally { 
        if (cursor != null) { 
         cursor.close(); 
        } 
        EditText phoneEntry = (EditText) findViewById(R.id.invite_text); 
        phoneEntry.setText(phone); 
        if (phone.length() == 0) { 
         Toast.makeText(this, 
           "No Phone Number found for contact.", 
           Toast.LENGTH_LONG).show(); 
        } 

       } 

       break; 
      } 

     } else { 
      Log.w(DEBUG_TAG, "Warning: activity result not ok"); 
     } 
    } 

} 
+0

代码应起到的短信应用。 – 2012-02-25 21:56:58

回答

4

你在该行获得了ClassCastException

txtMessage = (EditText) findViewById(R.id.invite_text); 

这意味着View对象与ID R.id.invite_textEditText。然而,这是不正确的,因为invite_text的确属于EditText类型。

<EditText 
     android:id="@+id/invite_text" 
     android:layout_width="fill_parent" 
     ... 
     " /> 

所以我认为你的资源文件不是最新的。代码看起来没问题。删除您的gen文件夹并再次运行。当您删除gen文件夹时,应该重新创建您的资源文件。

1

点击Project菜单和choosen Clean...选择您的项目,然后单击确定

相关问题