我正在尝试使用电子邮件意图发送电子邮件。这是我的代码:
/** Called when the user clicks the send button */
public void cont_sendEmail(View view) {
final EditText nick = (EditText) findViewById(R.id.contNick);
final EditText feas = (EditText) findViewById(R.id.contFeas);
final EditText tip = (EditText) findViewById(R.id.contTip);
String totalNick = nick.getText().toString();
String totalFeas = feas.getText().toString();
String totalTip = tip.getText().toString();
String totalText = totalNick.concat(totalFeas);
// Do something in response to button
Intent i = new Intent(Intent.ACTION_SEND);
i.setType("message/rfc822");
i.putExtra(Intent.EXTRA_EMAIL , new String[]{"sando@live.se"});
i.putExtra(Intent.EXTRA_SUBJECT, "New contribution!");
i.putExtra(Intent.EXTRA_TEXT , totalText);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
try {
startActivity(Intent.createChooser(i, "Send mail..."));
} catch (android.content.ActivityNotFoundException ex) {
Toast.makeText(ContributeActivity.this, "There are no email clients installed.", Toast.LENGTH_SHORT).show();
}
}
当我按下“发送”按钮并激活cont_sendEmail时,应用程序崩溃了。这是我的logcat:
08-17 14:29:16.445: E/AndroidRuntime(12649): FATAL EXCEPTION: main
08-17 14:29:16.445: E/AndroidRuntime(12649): java.lang.IllegalStateException: Could not execute method of the activity
08-17 14:29:16.445: E/AndroidRuntime(12649): at android.view.View$1.onClick(View.java:3691)
08-17 14:29:16.445: E/AndroidRuntime(12649): at android.view.View.performClick(View.java:4211)
08-17 14:29:16.445: E/AndroidRuntime(12649): at android.view.View$PerformClick.run(View.java:17267)
08-17 14:29:16.445: E/AndroidRuntime(12649): at android.os.Handler.handleCallback(Handler.java:615)
08-17 14:29:16.445: E/AndroidRuntime(12649): at android.os.Handler.dispatchMessage(Handler.java:92)
08-17 14:29:16.445: E/AndroidRuntime(12649): at android.os.Looper.loop(Looper.java:137)
08-17 14:29:16.445: E/AndroidRuntime(12649): at android.app.ActivityThread.main(ActivityThread.java:4898)
08-17 14:29:16.445: E/AndroidRuntime(12649): at java.lang.reflect.Method.invokeNative(Native Method)
08-17 14:29:16.445: E/AndroidRuntime(12649): at java.lang.reflect.Method.invoke(Method.java:511)
08-17 14:29:16.445: E/AndroidRuntime(12649): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1006)
08-17 14:29:16.445: E/AndroidRuntime(12649): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:773)
08-17 14:29:16.445: E/AndroidRuntime(12649): at dalvik.system.NativeStart.main(Native Method)
08-17 14:29:16.445: E/AndroidRuntime(12649): Caused by: java.lang.reflect.InvocationTargetException
08-17 14:29:16.445: E/AndroidRuntime(12649): at java.lang.reflect.Method.invokeNative(Native Method)
08-17 14:29:16.445: E/AndroidRuntime(12649): at java.lang.reflect.Method.invoke(Method.java:511)
08-17 14:29:16.445: E/AndroidRuntime(12649): at android.view.View$1.onClick(View.java:3686)
08-17 14:29:16.445: E/AndroidRuntime(12649): ... 11 more
08-17 14:29:16.445: E/AndroidRuntime(12649): Caused by: java.lang.ClassCastException: android.widget.TextView cannot be cast to android.widget.EditText
08-17 14:29:16.445: E/AndroidRuntime(12649): at com.sandtdevelopment.getrich.ContributeActivity.cont_sendEmail(ContributeActivity.java:18)
(如何将logcat粘贴为可读?)
可能是什么问题?
答案 0 :(得分:2)
引起:java.lang.ClassCastException:android.widget.TextView 无法转换为android.widget.EditText
您显然正在尝试将TextView转换为无法使用的EditText。
我发现了两个可能的错误原因:
有时候你使用Layout Creator对你的布局进行了大量的改动,IDE可能会有点困惑和混淆 的东西。请尝试清理项目。
你实际上是在做错误的演员。在这种情况下,检查您的代码并查看您是否意外 将TextView转换为EditText (您可能只是混合了一些视图ID )。例如,上面提到的一个引用ID不是EditText。请检查“R.id.contNick”,“R.id.contFeas”和“R.id.contTip”。
答案 1 :(得分:1)
引起:java.lang.ClassCastException:android.widget.TextView无法在com.sandtdevelopment.getrich.ContributeActivity.cont_sendEmail(ContributeActivity.java)中强制转换为android.widget.EditText ... :18)
您正试图在第18行将TextView
投放到Editview
答案 2 :(得分:0)
您的EditText
个实例在您的课程顶部显示时出现错误。您是否意外地将XML中的一个定义为XML中的TextView?您用来引用它的ID可能也是错误的。如果是这种情况并且您修复了它,那么您的错误就会消失。